位置:51电子网 » 技术资料 » 测试测量

单片机在波特率变换器中的应用

发布时间:2008/5/27 0:00:00 访问次数:455

        

    

    

    来源:单片机及嵌入式系统应用 作者:北京航天动力研究所 郑大生 孙文英 翟丽婷

     

    在一些复杂的系统中,系统与分系统、分系统与设备等之间存在数据的传递问题,往往采用通信的方式来解决。由于分系统、没备等通信波特率的不同,特别是一些特殊波特率设备的存在,使得系统中设备间的相互通信不易实现。例如,在一个系统中,上位机接收某一设备的数据,如图1所示,设备l和设备2采用的是172.8 kbps的波特率,而上位机用vb编程,其通信波特率为115.2 kbps、128 kbps或256 kbps,等,这样设备之间就不能相互通信,给设计带来困难。为了解决上述问题,采用双单片机电路,设计了波特率变换器,将接收波特率为172.8 kbps的数据,转换成波特率为115.2 kbps的输出,从而使不同波特率设备之间的通信成为可能。

    

    

    

    1 波特率变换电路

    

    波特率变换电路如图2所示。电路采用2片单片机89c5l作为电路的核心,利用单片机的uart串行口与相关设备通信。单片机u1_l.(接波特率低的设备)与波特率为115.2 kbps的设备通信,单片机u2_h(接波特率高的设备)与波特率为172.8 kbps的设备通信。ul_i,与u2_h的通信采用并行口方式,以加快ul_i。与u2_h之间数据传递的速率。u1_l与u2_h的通信可以采用中断查询的方式,也可以采用握手查询的方式进行数据传递。

    

    

    电路采用2片75176接口驱动芯片组成一个rs-422通信接口。u3和u4组成的通信接口与115.2 kbps的设备相连,u5和u6组成的通信接口与172.8 kbps的设备相连,通信接口采用中断技术。波特率变换器工作原理如下:u1_i。从串行口收到设备的数据后,从pl口输出数据,并通知u2_h取数,u2_h取到数据后向设备发出数据,同时通知ul_i.已取走数据,为u1一l下一次输出数据做准备。当u2_h从串行口收到设备的数据后,查询u1_i,是否允许接收数据,如允许接收数据,u2_h从p1口输出数据,并通知ul_l取数,ul_l取到数据后向设备发出数据,同时通知u2_h已取走数据,为u2_h下一次输出数据做准备;如ul_l不允许接收数据,则u2_h暂缓送数。

    

    2 波特率变换器的应用

    

    波特率变换器在应用中,根据使用情况可以分为单向传送和双向传送。两单片机之间的数据传递可以采用中断方式.也可以采用查询方式。如采用查询方式,编程时利用p2口的几位作为查询信号,实现单向或双向传送。

    

    2.1 单向传送

    

    单向传送就是通信口的数据流只向一个方向,即从ul_l接收到的数据,从u2_h发送出去,或从u2_h接收到的数据,从ul_l发送出去。用这种方式进行软件编程比较简单。现以u1_l只接收外部设备数据,u2_h只向外部设备发送数据,采用查询方式为例,两单片机之间数据传送的流程图如图3所示。其中ul_l的p2.2作为向u2_h传送新数据的查询信号(u2_h的p2.5),p2.2=“0”表示有新的数据,p2.2=“1”表示没有新的数据;u2_h的p2.2作为接收u1_l数据的查询信号(u1_l的p2.5),p2.2=“o”表示可以接收新的数据,p2.2=“1”表示不能接收新的数据。如果采用中断方式,两单片机的查询信号更简单,只要ul_l查询u2_h是否可以接收数据的信号就可以,u2_h无需查询u1_l的查询信号。

    

    

    

    2.2 双向传送

    

    双向传送就是通信口可以同时接收数据和发送数据,数据流是双向的,ul_l和u2_h既接收数据也发送数据。这种方式软件编程比较复杂,特别是双向传送数据采用查询方式时。单片机之间的查询信号就更加复杂了。现以双向查询方式为例,两单片机之间数据传送的流程图如图4所示,u2_h的流程与u1_l一样。其中u1_l向u2_h传送数据时的查询信号与单向传送的定义一样,u2_h的p2.3作为向u1_l传送新数据的查询信号(u1_l的p2.4),p2.3=“0”表示有新的数据,p2.3=“l”表示没有新的数据;ul_l的p2.3作为接收u2_h数据的查询信号(u2_h的p2.4),p2.3=“o”表示可以接收新的数据,p2.3=“1”表示不能接收新的

        

    

    

    来源:单片机及嵌入式系统应用 作者:北京航天动力研究所 郑大生 孙文英 翟丽婷

     

    在一些复杂的系统中,系统与分系统、分系统与设备等之间存在数据的传递问题,往往采用通信的方式来解决。由于分系统、没备等通信波特率的不同,特别是一些特殊波特率设备的存在,使得系统中设备间的相互通信不易实现。例如,在一个系统中,上位机接收某一设备的数据,如图1所示,设备l和设备2采用的是172.8 kbps的波特率,而上位机用vb编程,其通信波特率为115.2 kbps、128 kbps或256 kbps,等,这样设备之间就不能相互通信,给设计带来困难。为了解决上述问题,采用双单片机电路,设计了波特率变换器,将接收波特率为172.8 kbps的数据,转换成波特率为115.2 kbps的输出,从而使不同波特率设备之间的通信成为可能。

    

    

    

    1 波特率变换电路

    

    波特率变换电路如图2所示。电路采用2片单片机89c5l作为电路的核心,利用单片机的uart串行口与相关设备通信。单片机u1_l.(接波特率低的设备)与波特率为115.2 kbps的设备通信,单片机u2_h(接波特率高的设备)与波特率为172.8 kbps的设备通信。ul_i,与u2_h的通信采用并行口方式,以加快ul_i。与u2_h之间数据传递的速率。u1_l与u2_h的通信可以采用中断查询的方式,也可以采用握手查询的方式进行数据传递。

    

    

    电路采用2片75176接口驱动芯片组成一个rs-422通信接口。u3和u4组成的通信接口与115.2 kbps的设备相连,u5和u6组成的通信接口与172.8 kbps的设备相连,通信接口采用中断技术。波特率变换器工作原理如下:u1_i。从串行口收到设备的数据后,从pl口输出数据,并通知u2_h取数,u2_h取到数据后向设备发出数据,同时通知ul_i.已取走数据,为u1一l下一次输出数据做准备。当u2_h从串行口收到设备的数据后,查询u1_i,是否允许接收数据,如允许接收数据,u2_h从p1口输出数据,并通知ul_l取数,ul_l取到数据后向设备发出数据,同时通知u2_h已取走数据,为u2_h下一次输出数据做准备;如ul_l不允许接收数据,则u2_h暂缓送数。

    

    2 波特率变换器的应用

    

    波特率变换器在应用中,根据使用情况可以分为单向传送和双向传送。两单片机之间的数据传递可以采用中断方式.也可以采用查询方式。如采用查询方式,编程时利用p2口的几位作为查询信号,实现单向或双向传送。

    

    2.1 单向传送

    

    单向传送就是通信口的数据流只向一个方向,即从ul_l接收到的数据,从u2_h发送出去,或从u2_h接收到的数据,从ul_l发送出去。用这种方式进行软件编程比较简单。现以u1_l只接收外部设备数据,u2_h只向外部设备发送数据,采用查询方式为例,两单片机之间数据传送的流程图如图3所示。其中ul_l的p2.2作为向u2_h传送新数据的查询信号(u2_h的p2.5),p2.2=“0”表示有新的数据,p2.2=“1”表示没有新的数据;u2_h的p2.2作为接收u1_l数据的查询信号(u1_l的p2.5),p2.2=“o”表示可以接收新的数据,p2.2=“1”表示不能接收新的数据。如果采用中断方式,两单片机的查询信号更简单,只要ul_l查询u2_h是否可以接收数据的信号就可以,u2_h无需查询u1_l的查询信号。

    

    

    

    2.2 双向传送

    

    双向传送就是通信口可以同时接收数据和发送数据,数据流是双向的,ul_l和u2_h既接收数据也发送数据。这种方式软件编程比较复杂,特别是双向传送数据采用查询方式时。单片机之间的查询信号就更加复杂了。现以双向查询方式为例,两单片机之间数据传送的流程图如图4所示,u2_h的流程与u1_l一样。其中u1_l向u2_h传送数据时的查询信号与单向传送的定义一样,u2_h的p2.3作为向u1_l传送新数据的查询信号(u1_l的p2.4),p2.3=“0”表示有新的数据,p2.3=“l”表示没有新的数据;ul_l的p2.3作为接收u2_h数据的查询信号(u2_h的p2.4),p2.3=“o”表示可以接收新的数据,p2.3=“1”表示不能接收新的

相关IC型号

热门点击

 

推荐技术资料

音频变压器DIY
    笔者在本刊今年第六期上着重介绍了“四夹三”音频变压器的... [详细]
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!