当前位置:首页 > 单片机 > 单片机
[导读]在一些复杂的系统中,系统与分系统、分系统与设备等之间存在数据的传递问题,往往采用通信的方式来解决。由于分系统、没备等通信波特率的不同,特别是一些特殊波特率设备的存在,使得系统中设备间的相互通信不易实现

在一些复杂的系统中,系统与分系统、分系统与设备等之间存在数据的传递问题,往往采用通信的方式来解决。由于分系统、没备等通信波特率的不同,特别是一些特殊波特率设备的存在,使得系统中设备间的相互通信不易实现。例如,在一个系统中,上位机接收某一设备的数据,如图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”表示不能接收新的数据。如果采用中断方式,查询信号可以减少,编程可以简化。



2.3 应用时的注意事项

两个单片机之间的握手方式如果采用中断,由于U2_H向外部发送数据比U1_L接收外部数据快,Ul_L向U2_H传送数据时,无需考虑U2_H的状态,而U2_H向U1_L传送数据时,由于U2_H接收外部数据比U1_L向外部发送数据快,U2_H必须查询Ul_L的状态,即U1_L是否处于接收U2_H数据的状态,否则,U2_H就不能向Ul_L传送数据。

若作为RS_485通信接口使用,只需对图2中的电路稍做改动,增加对75176芯片的读写控制,同时两个单片机中与主通信设备相连的单片机作为主机,通过P2口的一位来协调两个单片机是接收数据还是发送数据。

值得注意的是,该波特率变换器在不同的应用中会受到一定的限制,在使用时要注意下面几点:

①波特率很高时,要考虑单片机串行口能否实现;

②从波特率高的向波特率低的变换时,要考虑波特率低的单片机能否实现不丢数据的发送;

③当双向变换时,既要考虑上述情况,还有考虑程序的大小,以及执行时间对双向传送数据的影响,计算两个单片机能否实现不丢数据的变换,在时间上要留有余量;

④在查询时,要注意握手信号的关系,不要对同一数据产生重复读取,以至于数据重复;

⑤波特率不同时,单片机可以选用不同的晶振频率。

2.4 实例及源程序

在实际使用中若碰到如图1所示的情况,需要波特率变换器将坡特率为172.8kbps的通信数据转换成波特率为115.2kbps,再向上位机传送。实际使用的电路如图2所示。在该实例中,为了防止局部时刻接收数据比发送快而丢失数据,再U2_H单片机的程序中,加入了8个数据区作为接收数据存放缓冲区。

3 结论

通过长时间的通信实验和实际应用,设计的波特率变换器方案可行,通信可靠,没有出现数据丢失的情况。在一些系统中,由于通信波特率特殊,在设备之间通信存在波特率不匹配时,通过波特率变换器,可以实现不同波特率设备之间的通信。通过更改单片机的晶频振率,可以满足各种波特率(在单片机允许的范围内)的转换。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

奈飞(Netflix)今年早些时候从数据中看到了一个令人担忧的信号:用户访问该流媒体服务的频率下降了。该公司对其用户在四周时间里观看其内容的天数进行了跟踪,并担心访问频率的下降会增加用户取消订阅的可能性。在发现这一问题之...

关键字: 信号 流媒体 TI ST

SAIHUB CAB 025M成功获得安全试验所UL美国与加拿大认证证书 新加坡2022年10月17日 /美通社/ -- SAI.TECH Global Corporation("SAI.TECH"...

关键字: AI BSP PS 清洁能源

(全球TMT2022年10月13日讯)Supermicro Micro Computer, Inc. (SMCI) 发表其JumpStart早期远程试用计划Supermicro X13 J...

关键字: MICRO START SUPER PS

运放在没有输入的情况下,实际中仍会输出一个小电压。而这个小电压,会根据我们设置的放大倍数同等地被放大,同时,这个被放大的信号是有正、负之分的。

关键字: 运放 放大倍数 信号

智能汽车算力竞赛已现峥嵘,后摩尔时代的芯片厂商路在何方? 时不我待,中国车载芯片企业正在崛起,谁能领跑? Chiplet赋能嵌入式高性能计算,智能汽车如何获益? 上海2022年10月12日 /美通社/...

关键字: CHIP 智能汽车 摩尔定律 PS

(香港交易所股份代号: 981,上海证券交易所科创板证券代码: 688981)  上海2022年10月11日 /美通社/ -- 中芯国际2022年第三季度业绩将在中国北京时间2022年11月10日(星期四)...

关键字: 中芯国际 BSP PS REGISTER

2008年,AMD(ATI) Radeon HD 4850发布,55nm工艺,9.56亿个晶体管,800个流处理器,核心频率625MHz,256-bit 512MB GDDR3显存,浮点性能第一次突破1TFlops(每秒...

关键字: 超频 PS AMD TI

成都2022年10月10日 /美通社/ -- 近期,平安养老险总结了"五心"服务,只为做好群众权益保护,提供有温度的服务。多年来,平安养老险始终怀揣着守护"初心", 惠及"...

关键字: 温度 互联网 信息安全 PS

舍弗勒亮相2022年德国斯图加特国际金属加工展览会 用于精确切割过程和定位任务的部件范围大大扩展 舍弗勒的精密齿轮装置组合涵盖从10N·m到超过7000N·m的额定转矩 有色金...

关键字: 金属 齿轮 PS MIDDOT

上海2022年9月29日 /美通社/ -- 2022年9月12日,应上海报业集团海上名医特邀,上海德达医院医疗院长孙立忠教授,医疗副院长、医学影像与介入治疗科主任黄连军教授,共同带来了一场名为《德达名医堂 --...

关键字: VI COM MDASH PS

单片机

21600 篇文章

关注

发布文章

编辑精选

技术子站

关闭