这是笔者在研制为箔绕机配套的智能控制系统时的一段经历。箔绕机也是电力变压器的一种绕制设备,但箔绕不同于通常绕线,它绕的是1.0~1.6m宽的铜箔(铜箔也就是绕组“导线”)。在绕制过程中不能有位置的偏移,稍有一点偏移铜箔就卷成喇叭形了。因此箔绕机的机械结构及其工艺要求也比通常的绕线机要复杂和严格得多,其整体主要由卷筒牵引头、张力机身、卷筒尾摆等几部分组成。要协调这些动态中的机构使其不偏不倚地正常运行就得用智能化控制系统了。而智能化控制系统的核心是几片有机地相连的MCU单片机,本文将介绍的是有关单片机接口串行通信的使用问题。
电路原理
附图是控制板上相关部分的电路方框示意图。四片8位并入/串出移位寄存器74HC165组成32位并入/串出的移位寄存器作为输入扩展口,将控制面板上的旋钮、按钮等人为操作信息读入到MCU(单片机)AT89S52中进行运算处理,运算的结果由UART串口输出,经模拟多路开关/分离器74HC4052切换后,一方面传送给主控中心进行相应的控制操作; 另一方面传送至由三片8位串入/并出移位寄存器74HC164组成的输出扩展口,将指示信号输出,并经三片ULN2803驱动指示灯作相应的指示。

由于键盘阵列的操作信息要不断地循环访问,所以扩展输入就单独使用一个SIO串口,而指示灯信息输出及与主控中心数据通信共用一个UART串口。UART串口平时都是由74HC4052连通到主控中心随时等待通信。只有当MCU运算后必须更改指示灯信息时,才把74HC4052切换到发送指示信息的那个通道,发送后马上又切换回连接主控中心。
指示灯出乱
整个电路组装完毕进行调试时,发觉MCU发送的指示灯信息显示常常出错,偶尔在未发送指示灯信息时指示显示也会变动而出乱。
用仿真器在发送程序处进行断点监察,在偶尔出乱时系统并无调用发送子程序,即未发送过指示信息,也就是说指示出乱并非软件所为,而是外围的硬件引起。查看其运行路径,猛然发觉电路板设计有错漏。因为路径通道是经过74HC4052切换分离的,74HC4052模拟开关是一种COMS工艺的三态电路,它根据选通端的电平,决定输入端与输出端的状态。当选通端处在选通状态时,输出端的状态取决于输入端的状态;当没选通而截止时,则不管输入端电平如何,输出端都呈高阻状态。也正因为该电路通道平时处于截止呈现高阻状态而与输入阻抗极高(一般大于109Ω)的74HC164相连,因而容易受到杂波的干扰,加之所有集成电路都用上了插座,因此这些接插、连接布线无意中更成了招徕周围杂波的“天线”。这样,杂波窜入74HC164致使指示显示出乱也就不足为奇了,尤其是在MCU发送信息的过程中。找到原因后,在74HC164的数据和时钟输入端各自与地跨接了10k的下拉电阻问题就解决了。
接收不到主控中心的信息
本电路平时一直与主控中心连通,目的是常与主控中心进行联系,能够随时接收主控中心发来的信息。不料主控中心发来的数据信息收不到,而发往主控中心的却能顺利进行。
由附图可知,相关UART串口的信息都是经74HC4052通道切换的。当要发送指示灯信息时,程序指令将UART串口设置为方式0(同步移位寄存器通信的工作方式),向74HC164发送指示灯信息。此时MCU的P3.0脚(Rxd)为串行数据输出端,P3.1脚(Txd)为同步时钟输出端。当与主控中心通信时串口则设置为方式2(每帧11位的异步通信格式,MCU之间也是固定的波特率,由于距离近没配置RS232或RS485等接口),此时MCU的P3.0脚(Rxd)为串行数据接收输入端,P3.1脚(Txd)为串行数据发送输出端。
现在的问题是该MCU发送出去的信息主控中心能接收到,而主控中心传送来的信息却接收不到。也就是该MCU经74HC4052后输出的(包括指示灯信息)都是正常的,输入的则接收不到。难道74HC4052真的像有些书上所说的只是“单向传送”吗?为此笔者用“面包板”搭建了一个74HC4052的实验电路,运用示波器与方波信号发生器进行检测,实验表明:74HC4052对电平信号及脉冲波形的传输是双向的。
对电路板的进一步检测发现,平时MCU的P3.0脚似乎一直处于低电平状态,而拔去器件后上电对插座上的该脚测量却是高电平,说明电路板及外围硬件正常,没把其拉低。看来问题要么是MCU本身,要么出在软件里。对程序软件仔细检查,找到程序中有一条“ANL P3,#6EH”指令一直循环执行!这就难怪了,P3.0脚一直被该指令置为低电平,那么P3.0脚作为Rxd串行输入端,自然就无法读入数据信息了。该段循环程序是从别处剪切而来经修改后用在这儿的,由于疏忽没把那条“ANL P3,#6EH”指令清理干净,从而导致了这些麻烦。
总之,对于单片机的端口,无论是串行通信口还是普通I/O口,当作为输入口时,务必将其对应口线置为高电平,不然就会出类似的“洋相”了。
参考资料
读者可到以下网址查找本文涉及的相关芯片的资料。
1.http://www.atmel.com/dyn/resources/prod_documents/doc1919.pdf。
2.http://www.icbase.com/pdf/STM/STM28290105.pdf。
3.http://www.icbase.com/pdf/PHI/PHI05050106.pdf。
4.http://www.icbase.com/pdf/STM/STM26880105.pdf 。
文/张春峰