DSP的软件UART实现
发布时间:2008/5/27 0:00:00 访问次数:1385
adsp218x作为16位的定点数字信号处理器,以其低成本、低功耗的特点在实际中有着广泛的应用。它主要面向通信系统等对处理数据精度和动态范围适中、更强调产品成本和功耗的应用领域。adsp218x系列定点dsp相对于其他定点dsp的突出优点是片内高速存储器容量大,寻址能力强,运算速度快,对于需要较大存储器(40~80kb)的应用,adsp218x可以构成外围设备最少的系统[4] 。除此之外,adsp218x还有强大的系统接口,有两个带有自动压扩功能的双缓冲串口。adsp218x的串口属于同步串口,与标准的异步串行接口不同,要想实现adsp218x与pc机串口的通信,我们必须在dsp中采用软件模拟通用异步收发器(uart)的方法来实现两者的通信。
2串行通信和dsp串口
在典型的rs-232接口中,由于没有时钟信号,所以数据按照设定的固定波特率传送。在一帧信号中通常包括开始位、停止位和数据位,校验位可选。其中数据位为5~8bits;奇偶校验位共有5种方式可选:奇校验、偶校验、始终为1、始终为0以及空;停止位也有3种选择:1位、1 1/2位以及 2位。串口传数时低位优先,由开始位表示数据的传送。
adsp218x有两个双向双缓冲的同步串口,通过帧信号来控制数据流。每一个串口有5个信号:串行时钟sclk、接收帧同步(rfs)、发送帧同步 (tfs)、串行数据接收(dr)和串行数据发送(dt)。两个串口都可以使用外部时钟,也可以利用dsp的内部时钟,内部产生串口时钟时频率由串行时钟除法寄存器sclkdiv确定。帧同步信号也有内外选择,既可以自己产生,也可以由外部设备提供,它用于指示串行数据字的开始。串口数据的字长在 3~16bit之间任意设置,共有4种格式:右对齐高位零填充、右对齐高位符号位填充、 μ率压缩及a率压缩。sport在dr上接收数据,在dt上发送数据,可实现双工操作。数据比特利用串口时钟同步。在adsp218x的两个串口中,sport1除了可以作为普通串口,还可以作为外部中断和标志位使用。通过设置系统控制寄存器(0x3fff)的 bit10,dr1和dt1相应可作为flag in(标志位输入)和flag out(标志位输出),这两个管脚在软件uart的过程中可以作为数据的输入和输出管脚。adsp218x的串口在传输时高位优先。
adsp218x的串口使用主要是通过设置各内存映射控制寄存器来实现,各寄存器的具体含义及设置请参阅文献[2]。
3dsp软件uart的实现
由以上看出,dsp的串口和pc机的串口在数据格式以及传送控制上有区别,但是通过软件模拟以及必要的硬件控制,就可实现dsp与标准串口间的通信。在adsp218x上软件模拟uart有3种主要的方法:直接利用dsp的串口,通过控制串口的传送模式来实现;利用dsp的定时器,通过标志位管脚的输入输出来实现;利用dsp的外部中断,通过中断处理程序来实现。本文主要介绍前两种方法。
3.1 dsp串口实现的软件uart
通过对dsp的串口控制寄存器进行设置以及对接收和传送数据进行必要的处理,利用图1所示的电路,dsp就可以与pc进行数据交换。
发送数据时,设置串口为内部时钟,内部产生帧同步信号,传送时可按照实际的波特率发送数据。但是由于接收时需要设置dsp串口速率为波特率的3倍,所以发送时仍然按3倍波特率发送,因此在传送前必须对数据进行处理,除了加上开始位和结束位外,还需将待传数据按
adsp218x作为16位的定点数字信号处理器,以其低成本、低功耗的特点在实际中有着广泛的应用。它主要面向通信系统等对处理数据精度和动态范围适中、更强调产品成本和功耗的应用领域。adsp218x系列定点dsp相对于其他定点dsp的突出优点是片内高速存储器容量大,寻址能力强,运算速度快,对于需要较大存储器(40~80kb)的应用,adsp218x可以构成外围设备最少的系统[4] 。除此之外,adsp218x还有强大的系统接口,有两个带有自动压扩功能的双缓冲串口。adsp218x的串口属于同步串口,与标准的异步串行接口不同,要想实现adsp218x与pc机串口的通信,我们必须在dsp中采用软件模拟通用异步收发器(uart)的方法来实现两者的通信。
2串行通信和dsp串口
在典型的rs-232接口中,由于没有时钟信号,所以数据按照设定的固定波特率传送。在一帧信号中通常包括开始位、停止位和数据位,校验位可选。其中数据位为5~8bits;奇偶校验位共有5种方式可选:奇校验、偶校验、始终为1、始终为0以及空;停止位也有3种选择:1位、1 1/2位以及 2位。串口传数时低位优先,由开始位表示数据的传送。
adsp218x有两个双向双缓冲的同步串口,通过帧信号来控制数据流。每一个串口有5个信号:串行时钟sclk、接收帧同步(rfs)、发送帧同步 (tfs)、串行数据接收(dr)和串行数据发送(dt)。两个串口都可以使用外部时钟,也可以利用dsp的内部时钟,内部产生串口时钟时频率由串行时钟除法寄存器sclkdiv确定。帧同步信号也有内外选择,既可以自己产生,也可以由外部设备提供,它用于指示串行数据字的开始。串口数据的字长在 3~16bit之间任意设置,共有4种格式:右对齐高位零填充、右对齐高位符号位填充、 μ率压缩及a率压缩。sport在dr上接收数据,在dt上发送数据,可实现双工操作。数据比特利用串口时钟同步。在adsp218x的两个串口中,sport1除了可以作为普通串口,还可以作为外部中断和标志位使用。通过设置系统控制寄存器(0x3fff)的 bit10,dr1和dt1相应可作为flag in(标志位输入)和flag out(标志位输出),这两个管脚在软件uart的过程中可以作为数据的输入和输出管脚。adsp218x的串口在传输时高位优先。
adsp218x的串口使用主要是通过设置各内存映射控制寄存器来实现,各寄存器的具体含义及设置请参阅文献[2]。
3dsp软件uart的实现
由以上看出,dsp的串口和pc机的串口在数据格式以及传送控制上有区别,但是通过软件模拟以及必要的硬件控制,就可实现dsp与标准串口间的通信。在adsp218x上软件模拟uart有3种主要的方法:直接利用dsp的串口,通过控制串口的传送模式来实现;利用dsp的定时器,通过标志位管脚的输入输出来实现;利用dsp的外部中断,通过中断处理程序来实现。本文主要介绍前两种方法。
3.1 dsp串口实现的软件uart
通过对dsp的串口控制寄存器进行设置以及对接收和传送数据进行必要的处理,利用图1所示的电路,dsp就可以与pc进行数据交换。
发送数据时,设置串口为内部时钟,内部产生帧同步信号,传送时可按照实际的波特率发送数据。但是由于接收时需要设置dsp串口速率为波特率的3倍,所以发送时仍然按3倍波特率发送,因此在传送前必须对数据进行处理,除了加上开始位和结束位外,还需将待传数据按
上一篇:语音识别及其定点DSP实现