首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 其它电路
某光电跟踪产品双DSP系统RS422通信设计
来源:本站整理  作者:佚名  2011-08-12 21:32:29




1.1 DSP上的RS 422通信程序设计
    DSP上的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通用异步通信协议。

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位,则根据接收缓冲区接收到的字的意义以及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通信状态机。

c.jpg


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

上一页  [1] [2] [3] [4]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:161,085.90000 毫秒