说的还是前一段时间给老板的朋友做控制器的事,在这个小项目上我可真是长见识了。在这个项目里用到了一个霍尼韦尔的传感器,传感器是通过232口和上位机通讯的,通讯波特率2400,数据格式1位起始位、1位停止位、8位数据位、没有奇偶校验、每帧数据有一个求和校验。有3中命令:50 03 AD;50 00 B0;50 01 AF。这里咱们不研究通讯数据就不细说了,总之看起来很简单。刚拿到传感器的时候我得先检验一下是不是好使,接上电源,接通232到我电脑的串口1,然后用串口调试软件发命令,传感器很快有了相应,这证明传感器是好的,可以放心的做我的工作了。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
做程序之前我还要知道传感器响应的速度,这有关于我单片机处理能力,所以找来串口调试软件Commix这个软件可以显示发送到接收的时间。
测得结果还不算快,两个命令是10多毫秒的,一个命令是1秒多的,我的ATMEGA8完全可以应付得过来。这里要说一下,这个传感器是232口的,它工作的地方距离我的控制器100多米,由于232的传输有效距离是15米,我们需要把232转成485传到我的控制器上,485的有效传输距离可达1000米。
测过通讯我就动手做程序了,没到一个星期就做好了,可问题接着就来了,当我把传感器接上232转485转换器连到我的控制器的485口上时无论如何也通不上。用另一个232转485接到电脑上监视通讯数据时发现控制器发出的命令成了乱码,我的控制器通过一个232转485接到电脑上通讯正常,原来试传感器接电脑也正常,再试试传感器接232转485再接232转485接到电脑上,通讯失败。于是怀疑是传感器的232口带不动485转换器,让老板买了一个232和485端都带驱动带隔离的转接器回来一试还是不行。从网上找来一个232转485的电路,自己动手用MAX232和65LBC184搭了一个转换电路,仍然不行。
本来是很规则的波形,变成了杂乱无章的波形。
现在的矛盾就都集中在控制485方向的三极管上了,为什么它不能正确控制方向呢?把传感器接到电脑上用示波器同监视232口的2和3脚才发现,原来当电脑向传感器发命令的同时,传感器同时向电脑返回接收到的命令,这两个波形是同步的,它就是导致232转485转换器搞不清方向的原因。232口是全双工的,发送的同时允许接收,可485不行485在同一时间内只能发或者收。我的控制器上的485电路是死的了,不能再改了,传感器的232电路也改不了,
485接口电路
只能从转换器身上想办法了。用个CPU控制232和485在中间做翻译工作,写了一小段程序才解决了问题。看起来不是所有的232都能随便转成485啊,还要看信号的规则。这个小项目可让我长知识了,东西不大麻烦不少。我这篇文章是博客大赛参赛文章,麻烦看过的朋友到左上角顶我一下,谢谢!
用户1666408 2013-3-27 22:02
用户1569902 2010-4-14 10:09
用户1672796 2009-10-9 19:28
huotingtu_505472073 2009-9-4 20:53
用户213184 2009-8-20 14:12
用户227556 2009-8-16 10:37
用户104269 2009-5-9 10:19
用户1404984 2009-1-11 21:16
用户385839 2009-1-4 19:23
用户385839 2009-1-4 19:22