基于LM3S101的数字采控器设计
0 引言
随着科学技术的发展和社会的进步,现场监控系统已越来越广泛地应用于金融、交通、商业、工农业生产等领域。数字采控器作为现场监控系统中数字量采集和控制的主要设备,其性能对整个系统的现场监控工作的稳定性具有十分重要的作用。因此,研制结构简单、性能稳定、可靠性高且成本低廉的新型数字采控器具有十分重要的意义。
本文介绍了一种以Luminary公司新推出的、采用ARM Cortex-M3内核的LM3S101微控制器为控制核心,并采用RS-485通信专用器件SP3485进行通信接口的设计,由串行输入/并行输出8位移位寄存器74HC164和并行输入/串行输出8位移位寄存器74HC165来进行并行数字输入/输出扩展的数字采控器的设计方法。该数字采控器具有性价比高、设计新颖、实用、抗干扰能力强等特点,可广泛应用于各种现场监控系统,而且经改造后,还可应用于远程控制系统。
1 系统整体工作原理
本数字采控器硬件以LM3S101 ARM微控制器为控制核心,主要实现RS485通信、波特率设置、本机地址设置、8路数字量采集和8路数字量控制等功能。其系统的硬件组成如图1所示。
数字采控器的主要功能是根据远程监控中心发出的现场监控数字量传感器(如:玻璃破碎监测、远红外监测等)状态监控命令来进行8路传感器数字量的状态采集,然后将采集到的数字量结果发送给监控中心;同时接收来自远程监控中心发送的数字量开关控制命令,进行数字量输出控制,以控制监控现场的监控辅助设备,如:灯光、报警器等。
2 硬件结构
本系统主要由LM3S101 ARM微控制器主控系统、RS485通信接口、通信波特率和本机地址设置电路、8路数字量输入电路、8路数字量输出电路等组成。
2.1 LM3S101主控系统
LM3S101 ARM微控制器是Luminary公司推出的一款结构简单、性能出众且带有ARM Codex-M3处理器内核的32位微控制器。Codex-M3处理器是首个基于ARMv7M架构,主要针对汽车车身系统、工业控制系统以及无线网络等对成本和功耗极端敏感的嵌入式应用领域,是以实现高系统性能为目的而专门设计的ARM内核。
LM3S101的最大特点是成本低,性价比高。通常在大多数人脑海中的印象是32位微控制器价格较高,因此在设计低成本嵌入式应用系统时,常会自觉或不自觉地首选8/16位的微控制器,而LM3S101微控制器芯片的面世彻底改变了这种状况。因为它的销售价格在1美元以下,这就使得在构建同等性能价格比的应用系统时,选用32位的LM3S101芯片比选用其它8/16位芯片的成本更低。
LM3S101内部集成了8 KB单周期的FlashROM和2KB的单周期SRAM,并含有两个32位定时器,一个同步串行接口(SSI),一个看门狗定时器,一个UART,两个模拟比较器以及18个GPIO (通用输入/输出)等。芯片采用6 MHz的晶振,并可通过片内软件PLL来将工作时钟频率设置为20 MHz。
采用LM3S101可以极大地简化系统电路、提高系统的稳定性和可靠性。
2.2 RS-485通信接口
RS-485总线是目前现场监控系统中最为常见的通信接口,这是因为RS-485总线允许的最大通信距离可达1200多米,每条总线上允许连接的设备最多可达32台,经过适当的串口扩展,完全能够满足现场监控系统对通信距离和设备数量的要求。由于LM3S101的电源为+3.3 V,因此,RS-485通信接口也采用供电电压为+3.3 V的SP3485E专用芯片来进行通信接口设计,其接口电路原理图如图2所示。图中的SMD010是电流为100 mA的自恢复保险丝,当通信网络出现故障,A、B端的电流大于100 mA时,自恢复保险丝SMD010的电阻会变大,从而保护SP3485芯片不被损坏。
2.3 数字量输入电路
LM3S101的GPIO引脚虽然有18个,但绝大多数引脚除具有通用输入/输出功能外,还具有其它系统的外设功能。其中五个引脚可作为JTAG接口进行系统调试和编程,三个引脚可作为RS-485通信和控制使用。显然,使用LM3S101的GPIO引脚来直接作为8路数字量输入、8路数字量控制输出和通信波特率以及本机地址设置是不可能的。因此,8路数字量输入电路应采用并行输入、串行输出的8位移位寄存器74HC165和光电耦合器TLP521-4来进行设计,其数字量输入电路原理图如图3所示。
当需要采集监控现场各数字量监测传感器状态时,只需进行并行输入、串行输出的8位移位寄存器的数字量读取,然后,对数据进行封装后发送给远程监控中心即可。
2.4 通信波特率和本机地址设置电路
通信波特率和本机地址设置电路属于数字量输入电路,因此,可以由一块74HC165来完成。只是输入是由拨码开关设置。其中两组开关用于通信波特率设置,可设置1200 b/s、2400 b/s、4800 b/s和9600 b/s四种通信波特率;其他六组开关用于本机地址设置,可设置成64个设备地址:0~63。
构成通信波特率和本机地址设置电路的74HC165与8路数字量输入电路中的74HC165串联,可组成一个并行输入、串行输出的16位移位寄存器。系统初始化前,只需进行16位移位寄存器的数字量读取,然后,再取低8位二进制数作为通信波特率和本机地址设置值,取低六位为本机地址、高两位为通信波特率设置值。
2.5 数字量控制输出电路
8路数字量控制输出电路可由串行输入、并行输出的8位移位寄存器74HC164,8位锁存器74L5373.8路达林顿管阵列集成电路ULN2803和8个线圈额定电压为12 V、负载能力为10 A的交流250 V继电器组成。其8路数字量控制输出电路如图4所示。当数字采控器接收到远程监控中心发送的数字量输出控制命令后,可先将74HC164的各位状态由8D锁存器74LS373锁存,然后向串行输入/并行输出的8位移位寄存器74HC164依次输出8位二进制控制信息。最后,在移位输出前及完成8位二进制控制数据后,并在74HC164输出的状态稳定下来后,再将新的二进制控制信息输出。
3 系统软件设计
可支持LM3S101的集成开发环境有KeilμVi-sion3 for ARM、 IAR Embedded Workbench forARM和Rowley Crosswork等。针对不同的集成开发环境,Luminarv公司提供有配套完善且丰富的驱动程序库Stellaiis Driver Library,并在程序驱动库中封装了对底层寄存器的直接操作。应用开发中还可以直接调用该库中的函数,以完成绝大部分的程序设计。而不必关心底层的操作细节,这为系统软件程序的设计提供了极大的方便。
LM3S101中的通用异步收发器(UART)具有独立的发送FIFO和接收FIFO。这一特性使得LM3S101在串行通信中不必逐字节地发送和接收数据,故可以使其全力以赴地去作别的事情。本数字采控器的软件由系统主程序和串口通信主程序两大部分组成,这两部分的程序流程图如图5所示。
4 结束语
本文介绍的基于LM3S101的数字采控器硬件采用Luminarv公司针对工业应用方案而设计的高性价比32位ARM微控制器为控制核心。由SP3232E实现RS-485通信接口、并行输入/串行输出移位寄存器和串行输入/并行输出移位寄存器设置、以及8位并行输入和8路并行输出数字量接口电路的设计。系统软件按照模块化程序设计思想,程序编写由C语言实现。而采用Luminarv公司开发的Stellaris Driver Library程序库,可以直接调用该库中的函数驱动程序库,编程灵活,修改方便快捷。本系统经现场测试表明:基于LM3S101的数字采控器在某安防监控系统中运行可靠,工作稳定。