新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 某光电跟踪产品双DSP系统RS422通信设计

某光电跟踪产品双DSP系统RS422通信设计

作者:时间:2011-08-09来源:网络收藏

1.1 上的RS 422程序
上的RS 422程序是一种有限状态机,它利用上层协议将位流进行传输,具体如下:
1.1.1 位流的形成
发送过程:RS 422是四线制的差分电平标准,在本中,TMS320C6201B的McBSP1用作通用I/O口,将MeBSP1的7根本来用作同步通信用的数据与控制线,现设置为通用I/O线。
通过将TMS320C6201B的McBSP1接口的DX引脚置高与置低实现发送一位位的数据流,通过读取RX引脚上的电平信号来接收数据位流。位流的速度与PC机上接收与发送流的速度一致。位流的格式遵循标准异步通信协议(UART),本中,设定为1位起始位,8位数据位,2位停止位。由于TMS320C6201B上没有带UART通信口,只能用软件通过通用I/O引脚模仿UART。位流的节奏由TMS320C6201B的定时器0定时周期控制。图2所示为UART通用异步通信协议。

本文引用地址:http://www.eepw.com.cn/article/155937.htm

b.jpg


接收过程:RS 422传输线Rx+、Rx-经过MAX490ESA422接口芯片后,变成5 V CMOS电平信号Rx。Rx接至TMS320C6201B的两个地方,一是TMS320C6201B的McBSP1的Rx脚,另外还同时接至TMS320C6201B的INT5脚。接收的过程如下:一旦PC机发出一个8位数据,PC机首先要发送电平为低的起始位,这时将引起Rx脚由高到低的跳变,TMS320C6201B的INT5脚将感受到这一电平的跳变,这将引发TMS320C6201B的一次电平中断,用来提示TMS320C6201B,请准备接收PC机上的数据。在INT5的中断处理程序中,首先关掉INT5脚电平中断,以防后来还没有接收完8位的数据位流上的电平变化再次引发不希望出现的中断,然后退出中断。TIMER0开始计数到给定的周期时,引起了TIMER0的定时中断,TIMER0判断是否收满8位,如果没有,则读取McBSP1脚上的Rx信号,将其移入到接收缓冲区;如果接收满了8位,则根据接收缓冲区接收到的字的意义以及其他参数做出处理,当然,收满8位,TIMER0定时将打开INT5中断,复原其他状态,为下一次接收完整数据做准备。这样就完整地接收到了PC机上的一串完整的8位数据。
1.1.2 上层通信协议
位流形成后必须能识别出位流中包含的意义,或者建立一种DSP与PC之间的通信协议或通信状态机,确保DSP能够识别出PC机发出的命令字,同时PC机也能正确接收包含着特别含义的位流。
该通信协议要实现以下功能:
(1)确保DSP与PC机能正确地握手。当握手不成功时,要有相应的错误处理机制;当握手不成功的次数太多时,必须停止握手,提示操作人员做相应的处理。
(2)在握手成功后,DSP能够根据PC发出的命令,做出相应的响应。
(3)协议应该简单,不太复杂,扩展容易。
为了达到以上目的,本系统在DSP上设计了如图3所示的RS 422通信状态机。

c.jpg


其基本过程是:当DSP启动后,进入主程序,首先将通信状态机置于准备接收PC机握手码状态,一旦收到PC机发出的8位数据,判断是否是8位握手码,如果是则将通信状态机置于发送握手码状态,如果握手码接收错误,则发0x55,否则发0xAA。如果是正确的握手码,则将通信状态机置于准备接收PC机命令态。下一步,通信状态机等待接收PC机发出的命令,一旦收到8位数据,则认为是PC机发出的命令,并根据PC发出的命令,将通信状态机调整到PC机要求的工作状态,然后执行PC机要求的操作,如传送AD原始数据与相关结果,等待接受PC机发出2187的程序数据等。当执行完PC机的命令,调整通信状态机回到初始等待PC发出握手测试码状态,为新一轮的通信准备好条件。



评论


相关推荐

技术专区

关闭