5 数据通讯
5.1 异步串行通讯
数据采集系统与主控计算机之间的数据交换采用异步串行通讯方式。TMS320F206带有一个异步串行通讯端口,在40MHz外频条件下,最高传输速率达到2.5Mbit/s。发送和接收使用独立的缓冲区,可以实现全双工工作方式,异步串行口的工作框图如图4所示。
其中,AXSR为异步串行发送移位寄存器;ARSR为异步串行接收移位寄存器;ADTR为异步数据发送接收寄存器,TXRXINT为发送接收中断(硬件中断)。
此外,TMS320F206有一个同步串行口,用于多机并行工作方式下DSP之间的数据交换。在40MHz外频时,其最高传输速率为20Mbit/s。
5.2 波特率设置
TMS320F206有一个16位寄存器BRD用于设定异步串行通讯所使用的波特率,其数值计算公式如下:
BRD值=(外部时钟频率)/(16×波特率)
表1列出了不同外部的时钟频率下常用波特率对应的BRD数值。
表1 常用波特率转换表
波特率/bps 外部时钟频率
20MHz 28.57MHz 40MHz
1200 0411 05CC 0823
2400 0208 02E6 0411
4800 0104 0173 0208
9600 0082 00B9 0104
19200 0041 005C 0082
57600 0015 001F 002B
5.3 串行通信软件设计
为了提高效率,数据的发送和接收均采用中断方式,串行通讯波特率为57600,汇编程序代码如下:
串行口初始化:
- setc INTM ;禁止所有中断
- splk #0ffffh,ifr ;清中断
- splk #0000h,60h
- out 60h,wsgr ;清等待状态
- splk #0c180h,61h
- out 61h,aspcr ;复位异步串口,设发送、接收中断,一个停止位
- splk #0e180h,61h
- out 61h,aspcr ;配置异步串口
- splk #4fffh,62h
- out 62h,iosr ;复位异步串口各状态标志
- splk #002Bh,63h
- out 63h,brd ;设波特率为57600
- splk #020h,imr ;允许异步串行中断
- mar *,ar1
- lar ar1,#rxbuf ;设缓冲区指针
- mar *,ar0
- lar ar0,#size ;设缓冲区大小
发送中断服务程序:
- …………
- splk #0ffffh,ifr ;关中断
- out *+,adtr ;发送数据
- mar *,ar0 ;发送计数
- banz skip,ar1 ;若仍有数据,发送缓冲区指错加1
- skip:splk #0020h,ifr ;允许中断
- clrc INTM ;清中断
- ret
- 接收中断服务子程序:
- …………
- splk #0ffffh,ifr ;关中断
- in 68h,iosr
- bit 68h,7
- bcnd skip,ntc ;检测接收标志位
- in *,adtr ;读数据
- mar *,ar0
- banz skip,ar1 ;接收数据计数
- …………
- skip:splk #0020h,ifr ;开中断
- clrc INTM
- ret
其中ifr为中断标志寄存器;aspcr为异步串行口控制寄存器;imr为中断屏蔽寄存器;iosr为I/O状态寄存器;wsgr为等待状态寄存器。
6 RS232接口电路
该系统中DSP与主控计算机的数据通讯采用RS232标准,驱动电路选用MAX232A芯片。MAX232A功耗低、集成度高、片内集成电荷泵,只需外接+5V电源,具有两个发送接收通道,接口电路简单、可靠性好。RS232驱动电路如图5所示。
7 系统的扩展
本设计方案电路简单、易于实现、具有一定的通用性,在此基础上可以扩展为同步采样的多通道采集系统,如图6所示。图中,主从DSP之间的数据通讯采用同步串行方式。需要注意的是:对于多通道同步采样系统,应尽可能保证各通道参数的一致性。
根据本文内容设计并实现的双通道同步数据采集与处理系统已成功应用于分布式光纤测量系统,取得了很好的效果,实践证明本文的设计是可行有效的。