接收过程: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位,则根据接收缓冲区接收到的字的意义以及DSP其他参数做出处理,当然,收满8位,TIMER0定时将打开INT5中断,复原系统其他状态,为下一次接收完整数据做准备。这样就完整地接收到了PC机上的一串完整的8位数据。
1.1.2 上层通信协议
位流形成后必须能识别出位流中包含的意义,或者建立一种DSP与PC之间的通信协议或通信状态机,确保DSP能够识别出PC机发出的命令字,同时PC机也能正确接收包含着特别含义的位流。
该通信协议要实现以下功能:
(1)确保DSP与PC机能正确地握手。当握手不成功时,要有相应的错误处理机制;当握手不成功的次数太多时,必须停止握手,提示操作人员做相应的处理。
(2)在握手成功后,DSP能够根据PC发出的命令,做出相应的响应。
(3)协议应该简单,不太复杂,扩展容易。
为了达到以上设计目的,本系统在DSP上设计了如图3所示的RS 422通信状态机。
其基本过程是:当DSP启动后,进入主程序,首先将通信状态机置于准备接收PC机握手码状态,一旦收到PC机发出的8位数据,判断是否是8位握手码,如果是则将通信状态机置于发送握手码状态,如果握手码接收错误,则发0x55,否则发0xAA。如果是正确的握手码,则将通信状态机置于准备接收PC机命令态。下一步,通信状态机等待接收PC机发出的命令,一旦收到8位数据,则认为是PC机发出的命令,并根据PC发出的命令,将通信状态机调整到PC机要求的工作状态,然后执行PC机要求的操作,如传送AD原始数据与相关结果,等待接受PC机发出2187的程序数据等。当执行完PC机的命令,调整通信状态机回到初始等待PC发出握手测试码状态,为新一轮的通信准备好条件。