基于AVR单片机的通用控制板摘要:本文主要从单片机应用技术的角度出发,探讨单片机通用控制板的硬件构成、pbc布线要点;并详细讲述软件开发过程以及相同控制板之间通信与数据交换的实现原理。并列举部分应用实例。关键词:avr单片机硬件构成软件开发应用实例中图分类号:tp368文献标识码:a文章编号:1007-9416(2012)02-0109-01随着单片机技术的不断发展和芯片成本的不断降低,单片机技术应用于电气系统控制系统、各类工业自动化控制、家电产品已经屡见不鲜。对于一些控制过程简单、输入输出节点不多,模拟量输入输出精度要求不高的场所,如果用plc又感觉大材小用且成本难以控制。这时候如果采用单片机控制显然具备明显的优势。不同的控制系统要求不同控制逻辑来实现,但其硬件构成基本类似,只是软件构成区别较大而已。因此,按照一般的控制要求构建出通用的控制板,在根据不同的控制要求编写控制软件是完全可行的。实际上现在广泛应用于自动控制领域的plc就是基于这一理论诞生出来的。只是其控制精度更高、配套产品更成熟化、软件编写平台更人性化而已。1、通用控制板的硬件构成本文所讲述的通用控制板选用atmel公司生产的作为主控芯片,该芯片具有简便易学,开发成本低廉的特点,同时由于现在大都采用c语言编程,其编程方式简便易学。atmega16单片机功能强大、性价比高。具备32个真正意义的双向i/o,具有大电流(灌电流)10~40ma,可直接驱动可控硅scr或继电器,节省了外围驱动器件。atmega16avr单片机内带模拟比较器,具有8路10位a/d,i/o口可用作a/d转换,可组成廉价的a/d转换器。同时串口通信、看门狗电路、e2rom等一应俱全。目前,avr已被广泛用于空调控制板、打印机控制板、智能电表、智能手电筒、led控制屏、医疗设备、gps等系统中。通用控制板设置8路开关量输入、4路模拟量输入;8路开关量输出,每路开关量输出均采用继电器输出(常开、常闭各一组);一路红外接收电路。具备485通信和232通信端口,可以实现控制板与pc以及控制板与控制板之间的通信和数据交换,以便实现上位机控制和远程多板联控。以下简要叙述各功能模块的构成。开关量输入电路模块采用光耦pc817实现输入端与控制板的隔离,同时为了能直观的观察开关量的输入状态,在输入端设置了led指示(输入端低电平是点亮),输入端采用+12v独立电源驱动,以减少输入电路对单片机的干扰。对该电源的要求是+12v稳压、输出电流大于1a。模拟量输入使用atmega16的pa0~pa3四个引脚,最大输入电压5v,为简化电路ad转换所需的基准电源直接采用单片机的+5v电源,为保护单片机输入端不会因模拟输入端电压过高而损坏,pa0~pa3设置了5.1v的稳压管及相应的限流电阻组成的保护电路。为便于与不同传感器相连接,输入端设置了接地和上拉电阻跳线。实际应用是可根据需要设置跳线。开关量输出采用pc817光耦隔离控制板与输出端,由单片机的pc0~pc7驱动相应的光耦,再由光耦驱动9013的基极,9012的集电极驱动输出继电器。输出端电源采用+12v独立电源驱动,减少输出电路对单片机的干扰。输出电源要求+12v稳压、输出电流大于1a。输入电源与输出电源可以采用同一组电源。串口通信电路采用max485和max232实现485通信和rs232通信,由于atmega16只有一个硬件串口通信,所以对于同一个控制板485通信和232通信不能同时使用,而是采用拨码开关进行切换。单片机电源采用+5v稳压独立电源,输出电流要求大于1a,在电路设计是应做好电源的滤波。2、pcb的布线要点在进行控制板的pcb布线时应注意一下几点:(1)输入输出应该分布在控制板的两边,电源的输入端点和通信端口分布在控制板的另外两边;(2)电源走线应适当加宽,靠近芯片的电源输入端点应增设滤波电容;(3)单片机的编程端口尽量靠近芯片;(4)单片机晶振走线尽量缩短;输入端与单片机、输出端与单片机之间应采用加宽的地线隔离;(5)pcb采用双面覆铜板,对于单片机部分的pcb空白部位采用覆铜接地,以增强单片机的屏蔽。3、软件开发本控制板的程序采用icc软件编写,编写完成后通过单片机的编程端口写入单片机。编程工作主要涉及端口定义、功能模块的初始化(通信初始化、ad转换初始化、输入输出初始化等),先按照avr的编程要求编写各功能模块。在具体应用时再根据不同的要求修改各功能模块。如果想使用上位机控制还需要编写相应的上位机控制软件,上位机控制软件可采用vb或vc编写,编写时一定要注意控制板的波特率的设定值,上位机的波特率与控制板的波特率一定要一致,否则无法正常通信。控制板通信模块软件的编写一定要考虑通信数据的校验,无论采用rs485还是采用rs232通信,在实际通信过程中总是难以避免外界的干扰,因而对通信数据正确的校验就显得尤为重要。通常比较简单有效的校验办法是采用帧头、帧尾特征码校验的方法进行校验,即通信传输的数据为aabb+(实际需要传输的数据)+aabb,其中帧头的aabb和帧尾的aabb为固定数据,接收方在收到数据后首先检查帧头和帧尾数据的正确性,以此判定传输数据是否正确。4、实际应用该通用控制板笔者已经成功应用于排风系统的远程控制系统、空调系统、废水处理系统自动控制。在排风系统的远程控制系统中采用了两个通用控制板,通过rs485实现两控制板之间的数据远程传输,实际传输距离为80米。在空调控制中使用一个控制板完全代替损坏的空调控制主板,用三个模拟量输入端口采集空调的室内温度、室内盘管温度、室外盘管温度。空调压缩机控制接触器、室内机风扇高中低档、室外机风扇、四通阀等由开关量输出继电器控制。在废水处理系统自动控制中,用开关量输入端点与水位传感器连接,输出端点控制水泵的接触器、加药泵等实现废水的自动处理。