当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]本文介绍的三种实现C32异步串行口的方法,前两种方法使用不是非常方便,而且占用了大量的C32系统资源,一般都使用第三种方法来实现C32和PC机之间的通信。

高速数字信号处理器在现代工业控制中,非凡是电气传动控制中的应用非常广泛。大量文献介绍的应用于电气传动控制的DSP使用的是TI公司的,TMS320系列DSP芯片,这其中又以TMX210C3X和TMS320F24X为主流应用产品。TMS320C32是TMS320C3X系列产品中应用比较多的一种。主工业控制中,经常需要使用上位PC机来控制底层的DSP芯片,一般采用异步串行通信协议,使用RS-232或485来实现。C32自身带有的串口为同步串口。为了实现C32和PC机之间的串行口通信,必须扩展C32的全双工异步串口功能。

C32实现UART接口的方法有三种:

使用C32的现有资源模拟串行口的功能;

使用可编程芯片实现同步和异步协议的转换;

使用专用的异步通信器件实现,例如PC机上使用16C550系列实现UART。

1 使用C32的现有资源模拟串行口的功能

通过使用两个通用I/O引脚、两个定时器和一个外部中断,可以用软件模拟UART的功能。使用中断实现软件模拟UART采用的通讯格式为:波特率9600bPs、8个数据位、一个停止位、无奇偶校验位。这种实现方法由Ted Fried高级计算机通信公司提供。
1.1 硬件

图1为硬件连接线图。接收线同时接到INT0和XFl引脚。起始位数据的下降沿触发外部中断INT0。传输线接到XFO引脚,使用上拉电阻输出。

1.2 软件

1.2.1 接收数据

根据UAHT协议,接收到的第一个数据是起始位,在软件中。起始位会触发一个外部中断INT0。害INT0的中断服务程序例程RXINT0中,定时器0首先玻装入一个时间常数,这个时间常数的定时时间等于半个数据位的延迟时间;然后装入定时器0的中断向量表,并答应定时器中断0,程序返回主程序,等待定时器0中断。假如定时器0触发中断,RX-TMR-INT例程则开始技行接收工作。第一个定时时间为半个数捉位的时间.CPU在接收位的中间时刻采样XFI的数据,并且验证接收到的数据是否为一个低电平。假如验证正确,表示接收到的数据为一个起始位,就可以接收数据了。在接收数据时,重新装载定时器0的定时值为一个数据位的时间并且启动定时器0,程序返回主程序,等待定时器0中断的到来。

在随后的定时器0的服务程序中,实现了在接收位的中间时刻采样接收线的状态来得到实际数据。将这些接收到的数据移位到一个存储器单元中。在第9次中断时,对接收到的停止位进行验证。假如正确,软件执行一个陷阱中断,程序返回到主程序。假如不正确,调用BAD_STOP_BIT子程序进行相应的错误处理。接收数据被处理完后,重新答应外部中断0,等待下一个起始位的到来。

1.2.2 发送数据

发送数据例程开始于主程序装载一个数据到指定的存储器中,并且调用TX_MAIN例程。在这个例程中,状态定时器1的定时时间为一个数据位的时间,重新设置传输计数器的值,设置起始位,并且答应定时器l中断,返回主程序,等待定时器1中断的到来。只有传输计数器的值为0时,主程序才会答应重新装载下一个需要传输的数据到指定的存储器中。在定时器1的中断子程序TX_INT中,程序将要传输的数据从XF0引脚上移位出去,直到传输计数器的值为0。

具体的程序代码请见参考文献。

2 使用FPGA实现异步和同步串行接口间的协议转换

有许多应用需要使用硬件UART。使用FPGA可以将同步串行口协议转换为异步串行口通信协议。具体的逻辑框图如图2所示。

系统使用的时钟为25MHz,FPCA中使用的时钟来源于C32的H3引脚。通信协议为:波特率9600bps、一个起始位、一个停止位、没有奇偶检验位。图3所示为传输电路。

通过设置传输定时器的定时值可以得到需要的9600bps的波特率。传输端口被配置为爆发传输模式,它可以产生UART的一个起始位。8个数据位之后的停止位可通过电路来实现。图4为接收电路图。

当电路检测到起始位时,接收电路开始工作。起始位的逻辑擅为0。延迟电路在起始位的下降沿被激活。延迟电路的设置使数据的采样发生在每个数据位的中间时刻,它提高了系统抗噪声的能力。


3 使用ACE实现UART

微机上最早使用的ACE是8250,16C550是8250的功能升级器件。器件在结构上的最大差别是16C550增加了接收和发送FIFO,因此器件能够处于交替工作模式,减轻CPU额外的软件负担。在这种模式下,无论是接收还是发送,在可访问的缓冲寄存器和不可访问的移位寄存器之间都增加了16字节的FIFO,可以使系统负担最小且系统效率最高,而且所有的逻辑功能都在16C550芯片上完成。TLl6C550A有两个管脚功能已经被改变,使用这两个信号可以答应信号使用DMA的方式来传输。

TLl6C550的主要功能为:TLl6C550在接收外部器件或MODEM的数据时?完成串行到并行的转换;在接收CPU的数据时,完成数据的并行到串行的变换,并进行串行发送。在ACE器件工作的任何状态下,CPU可以读和通报ACE器件的状态。通报的状态信息包括:传输操作正在进行过程中、操作状态、碰到了何种错误等,TLl6C550的内部包含一个可编程的波特率发生器,波特率为16x内部输入时钟频率.此内部输入时钟频率由输入的参考基准振荡器分频得到。TLl6C550具有完全的MODEM控制能力。包含一个处理器中断系统,根据用户的专用需要而设计,在处理通讯连接时,计算量是最小的。TLl6C550有两种封装形式:N PACKAGE 和FN PACKAGE。TL16C550的管脚按功能可以分为:外部时钟输入及波特率控制信号;数据和地址总线;片选及读写控制信号;MODEM控制信号;复位及中断控制信号。

假如C32要和PC机通讯,可使用TL16C550完成串行协议的转换。TLl6C550的输出接口要和一个电平转换芯片连接,用于和PC机的串行通讯接口互联。完整的接口示意图如图5所示。

其中的MAX232可以使用MAXIM公司的MAX3238来实现。

接口电路分为两大部分:DSP C32和串行通讯芯片TLl6C550之间的接口;串行通讯芯片TLl6C550和PC机之间的接口。

完整的电路原理图如图6所示。

接口逻辑可以使用集成的CPLD实现,本系统中使用的是ALTERA公司的EPM7128SLC184-10。它将芯片TLl6C550作为DSP C32的一个外设端口送行寻址。

相应的接口逻辑使用AHDL语言描述,具体如下:

TL16C550A一共使用8个地址对内部寄存器进行访问和控制。相对DSP C32系统而言,假如使用了上面的译码逻辑电路,则占用的8个地址为:0X818000~0X818007。

TLl6C550A串行接口寄存器的寻址表如表1所示。

DLABA2 A1 A0寄 存 器 名 属 性 地址值 00 0 0接收缓冲寄存器RBR 只读 0X818000 00 0 0发送缓冲寄存器TBR 只写 0X818000 00 0 1中断使能寄存器IER 读/写 0X818001 X0 1 0中断标志寄存器IIR 只写 0X818002 X0 1 0FIFO控制寄存器FCR 只写 0X818002 X0 1 1线路控制寄存器LCR 读/写 0X818003 X1 0 0MODEM控制寄存器MCR 读/写 0X818004 X1 0 1线路状态寄存器LSR 读/写 0X818005 X11 0MODEM状态寄存器MSR 读/写 0X818006 X1 1 1便签寄存器SCR 读/写 0X818007 10 0 0除数低字节锁存器DLL 读/写 0X818000 10 0 1除数低字节锁存器DLH 读/写 0X818001DLAB表示线路控制寄存器的第7位的逻辑值。

在程序中,使用逻辑地址0X818000~0X818007对TLl6C550A的各个寄存器进行寻址就可以了。

本文介绍的三种实现C32异步串行口的方法,前两种方法使用不是非常方便,而且占用了大量的C32系统资源,一般都使用第三种方法来实现C32和PC机之间的通信。

使用TL16C550实现DSP和PC机的通信,接口方便、控制简单、编程灵活,试验证实它是非常简便可靠的实现方法。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

恩智浦 S32Z2 和 S32E2 实时处理器集成Ceva的 AI DSP,为软件定义车辆提供预测分析、能量管理和智能控制功能

关键字: 人工智能 处理器 DSP

智能家居、工业物联网和智能穿戴设备蓬勃发展,信号质量已成为决定系统性能的核心指标。嵌入式DSP(数字信号处理器)凭借其专为信号处理优化的硬件架构与指令集,在噪声抑制、特征提取等场景中展现出独特优势。本文将结合实际案例,解...

关键字: 嵌入式 DSP

在医疗电子设备向便携化、智能化狂奔的今天,嵌入式数字信号处理器(DSP)正成为心电图(ECG)信号处理领域的“隐形冠军”。从三甲医院的监护仪到家庭健康手环,从动态心电图记录仪到植入式心脏监测器,这些设备背后都跳动着一颗强...

关键字: DSP 医疗电子

在万物互联的智能时代,嵌入式数字信号处理器(DSP)正与人工智能(AI)深度融合,从工业设备预测性维护到智能家居语音交互,从医疗电子信号分析到自动驾驶环境感知,这场技术革命正在重塑信号处理的边界。嵌入式DSP以其低功耗、...

关键字: DSP 人工智能

在智能设备遍地开花的时代,从无人机避障到医疗心电图分析,从工业振动监测到音频降噪处理,嵌入式数字信号处理器(DSP)正通过快速傅里叶变换(FFT)算法,将复杂的时域信号转化为直观的频域信息。FFT如同为嵌入式系统装上了一...

关键字: DSP FFT

在智能设备遍地开花的今天,从手机降噪耳机到车载语音助手,从工业传感器到医疗心电图仪,嵌入式数字信号处理(DSP)技术正悄然支撑着这些设备的“智慧大脑”。它像一位隐形的魔法师,将模拟世界的连续信号转化为数字世界的离散数据,...

关键字: 嵌入式 DSP

全新S-TRACK LARK 1.0 Pro无线麦克风可全面提升课堂音频效果和学生参与度

关键字: 麦克风 DSP AI处理器

在最近的教程中,我们讨论了基于PT2258的6通道音调控制器。我用它作为放大器的前置放大器,并通过网络服务器上的ESP控制所有6个通道。今天我们有PT2315,一个双通道数字音频处理器。它是一个功能齐全的DSP控制:音量...

关键字: PT2258 音调控制器 DSP

本文探讨在扬声器系统设计中使用数字信号处理(DSP)和全模拟系统之间的差异。传统模拟系统结构简单,没有模数转换器(ADC)和数模转换器(DAC)级,也因此受到广泛重视;DSP 以经济高效的方式提供精确的音频控制,并促进音...

关键字: DSP 扬声器 模数转换器

XMOS是全球半导体领域中值得信赖的领导性厂商,其XCORE®芯片的累计出货量已超过3500万颗。成千上万的客户信赖我们提供的高精度和低延迟处理器,其上集成了控制单元、接口(I/O)、人工智能(AI)和数字信号处理(DS...

关键字: SoC 人工智能 DSP
关闭