论文部分内容阅读
摘要:基于MSP430单片机的低功耗和CAN总线抗干扰能力扰强的特点,该文设计了一种以MSP430超低功耗单片机为现场节点控制中心的输入输出系统。利用CAN总线接口实现同上位机的数据远程传输。该系统能够很好的完成模拟量和数字量的采集和输出、实时的显示、数据的远程通讯要求。该系统对于应用在现场设备中的有一定的参考价值。
关键词:MSP430;CAN总线;I/O模块;通讯接口
中图分类号:TP332.3文献标识码:A文章编号:1009-3044(2012)22-5470-04
Design of Input and Output Modules Based on MSP430 and CAN Bus
CAO Xue-yan1, ZHANG Bo1, WANG Hai-rui2
(1.School of Mechanical Engineering and Automation, North University of China, Taiyuan 030051, China; 2.Chinese People`s Liberation Army Military Represent Office Residenting in 617 Factory, Baotou 014032, China)
Abstract: This paper designes a input and output system of field node controlling center with MSP430 ultra-low-power microcontroller based on the low power operation of MSP430 and powerful anti-interference performance of CAN bus.Using CAN bus interface achieves the long-distance data transitance with upper machince . The system performances well in acquiring and outputing of analog and digital signals, displaying real-time and long distance communication of data . Therefore , the system provides a reference to the application of field devices .
Key words: MSP430; CAN bus; I/O modules; communication interface
随着工业化的快速发展,许多工业现场设备控制逐渐向集成化方向发展。利用MSP430单片机构成现场设备的控制节点,不仅可以完成数据的采集和处理、而且可完成数据的运算处理和数据输出等功能,增加了现场一级的控制功能,现场节点得到的数据通过现场总线传送到控制室的计算机上,通过计算机实时监视各个仪表的运行状况,并可以保存控制节点上传来的数据。通过使用CAN现场总线,使用户可以大量减少繁杂的现场接线,而且传输速度快,传输距离远,通讯可靠。系统集成度得到改善,维护十分方便。
1系统总体结构
该系统设计了一种以单片机为底层核心,采集现场的数字量、模拟量[1]。并将采集的数据经过处理运算,利用CAN总线接口输出给上位机[2],上位机采用传统的计算机,这样方便软件进行数据处理。同时具有极限报警功能,LED灯、LCD显示屏显示输入输出信息的状态,有助于对设备进行监控。电源模块为各部分提供电源。系统的总体结构如图1所示。
图1系统总体结构
2硬件平台设计
2.1节点控制单元
系统的节点控制器负责协调各个部分良好工作,考虑到系统需要用到4路数字量的输入和输出,4路模拟量输入和输出,LCD的显示,同时需要控制CAN总线控制器SJA1000,这些需要占用较多的I/O端口,于是输入输出系统的节点控制器采用了TI公司的16位MSP430F149单片机[3],该型号单片机具有的I/O端口可以很好的满足该设计要求,同时功耗较低也是其它单片机所无法比拟的。MSP430F149单片机的基本特性:
具有16位的RISC结构,内核指令系统简洁,执行指令快,处理功能强;稳定工作电压在1.8~3.6V之间;灵活的时钟设置,有主系统时钟(MCLK)、辅助时钟(ACLK)、子系统时钟(SMCLK);内置了丰富的片内资源:片内提供温度传感器和12位的模数转换模块(ADC);6组可配置第二功能的I/O端口,每个引脚可单独配置成输入输出,其中有两个端口具有中断功能。
较多的片内存储器,该系列单片机拥有60KB的片内FLASH,同时提供较多的片内RAM;使用JTAG实现程序的代码下载,程序的运行及调控,通过该接口实现仿真调试功能,可以大大简化调试过程。
2.2 CAN总线接口设计
CAN控制器局域网是一种新型的串行总线。CAN总线可形成底层网络,完成现场自动化设备之间的多点数字通信,实现底层现场设备之间及生产现场与外界信息的交换,数据通信具有突出的可靠性、实时性、灵活性。
SJ1000是一种独立的的CAN控制器。全面支持CAN2.0B协议,通信速率可达1Mbps,支持11位和29位标识码,可编程的输出设置,具有BasicCAN和PeliCAN两种工作模式。该文采用PeliCAN模式,PeliCAN模式有很多寄存器,共同作用完成其功能。收发
器PCA82C250CAN总线收发器提供了CAN控制器与物理总线之间的接口,具有三种工作模式,高速模式、低速模式、待机模式。控制器与收发器共同组成一个CAN总线通讯结构。
在系统硬件接口设计时,由于所选的MSP430单片机的P1口和P2口具有中断功能,而其余的端口没有中断功能的,故选用P4口作为数据和地址总线对控制器进行数据和地址的操作,选用P3口的部分管脚来进行对控制器的读写和使能操作,同时通过P2.0所具有的中断功能来对控制器的中断进行响应。[4-5]电路如图2所示。
为了避免直接的电气或物理连接,SJA1000控制器并不是直接与82C250收发器相连,这里使用了光耦合器6N137,不但可以把信息的发出端和接收端电绝缘,可以对地电位差有很强的抗干扰能力,而且有抑制电磁干扰的能力。这些部分虽然增加了节点的复杂性,但是很大程度上提高了节点的安全性和稳定性。
图2 CAN接口电路
MSP430单片机采用1.8V~3.6V低压供电,而SJ1000控制器是5V电压供电,这两者之间进行数据交换时,两者之间存在着电平逻辑问题。这里采用74LVC4245双电源电平移位器,双电源保证两边端口的输出摆幅部能达到满电源幅值,并且有很强的噪声抑制性能。
2.3电源模块
系统微处理器MSP430单片机采用3.3V供电,而一般情况提供的是5V电压。所以设计中使用了TPS76033芯片,得到纹波小和稳压稳定的输出电压。
2.4数字量输入
数字量的输入模块一般是开关量形式的电压、电流,这些信号经常会产生瞬时高压、过电流或接触抖动。该文4路数字量以24VDC,4mA的形式输入,为了使输入信号安全可靠,在此采用了光电隔离,对外部信号进行滤波,电平转换和隔离保护。这里为保证其可靠性采用了芯片TLP521。电路如图3所示。
2.5模拟量的输入输出
本系统设计4路模拟量的输入,MSP430F149单片机自带12位的模数转换模块ADC12,可以很方便的实现模拟信号的采集。选择单片机的P6口作为4路模拟量的输入端口。同时系统拥有4路模拟量的输出,这里采用了ADI公司生产的AD664芯片,该芯片集成了4路完整的12位电压型输出DAC,并且每路均具有双缓冲锁存结构和回路读取功能,各端口可以通过数字I/O端口编程,此芯片能够较好的完成模拟量的输出功能。
2.6数字量的输出
数字量的输出模块要求能去驱动某些大功率设备,本设计系统中有4路数字量的输出,所以信号先经过ULN2803放大后,再由继电器进行输出,使输出能控制220VAC的设备。
图3数字量输入
图4数字量输出
2.7显示和报警
利用LCD显示屏显示模拟量的输入输出数据、系统的时间等,LCD显示屏功耗低、显示信息量大,寿命长和抗干扰能力强,已得到大量的使用。系统采用了12864液晶屏,体积小、重量轻、接口简单。数字量输入输出使用LED灯进行实时的显示,方便了现场操作人员的观察。[6]
为了设备的安全保护,这里使用了简单可靠的蜂鸣器进行极限报警,单片机端口的驱动能力较小,加入了音频功率放大器LM386,具有电源电压范围大,谐波失真小的特性。
3系统软件设计
该文设计的系统主要是数据的采集和输出,以及数据的通信。在设计中使用了微处理器作为节点控制核心,所以软件设计是很重要的。为了增加程序的可维护性与可移植性,采用了C语言编写,其编写的程序结构紧凑,效率较高。为了完成系统任务,其软件设计采用模块化设计思想,主要包括以下几部分:初始化程序、主处理模块、数据采集程序、显示程序,CAN报文的发送和接收。
3.1主处理模块
主程序模块流程图如图5所示。系统上电复位后,首先进入初始化程序,然后等待定时器的中断到来。进入中断后,对采集到的数据进行处理,然后发送给CAN接口,通过CAN总线将数据送到上位机。
3.2上电初始化
在系统上电复位之后需要对系统进行初始化,包括单片机的初始化和CAN控制器的初始化。单片机的初始化主要是端口的初始化、看门狗设置以及定时器初始化。CAN控制器SJA1000的初始化是在复位的模式下进行,在期间设置波特率,通过对时钟分频寄存器,验收代码寄存器,接收屏蔽寄存器,总线定时器和输出控制寄存器进行配置,在配置完成后回到工作状态,进行正常的通信任务。
3.3 CAN发送子程序
发送子程序负责节点报文的发送。发送时只需将待发送的数据按特定的格式组合成一帧报文,送入SJA1000发送缓冲区,然后启动发送即可。在将新报文放入缓冲器之前,主控器必须先检查状态寄存器的“发送缓冲器状态标志”。如果发送缓冲器是否为空,待发送缓冲器被释放,主控制器将新报文写入发送缓冲器并置位命令寄存器的发送标志(TR),启动发送。流程图如图6所示。
图5主程序流程图
图6发送数据流程图
4结论
基于MSP430的CAN总线的I/O模块系统的设计,主要完成了数字量和模拟量的输入输出接口设计,并通过CAN总线实现通讯功能。其工作性能稳定可靠,抗干扰能力强,功耗低,传输距离远,它必将在一些控制系统中及一些特殊的场合具有广泛的用途。
参考文献:
[1]刘银,曾立文,廖瑞,等.基于MSP430的多参数数据采集系统设计[J].煤矿机械,2011,32(6):171-172.
[2] Wang Qing.The Design of Reconfigurable Remote Monitor and Control System Based on CAN Bus.Electronics and Signal Processing[J]. LNEE 972011:117-125.
[3]胡大可.MSP430系列单片机C语言程序设计与开发[M].北京:北京航空航天大学出版社,2003.
[4]葛化敏,陈永,张彭程.基于CAN总线和MSP430的CO红外检测系统设计[J].电子设计工程,2009(12):32-34.
[5]袁立大,马洪连.轻轨列车改造项目中基于MSP430与SJA1000的CAN总线通信节点设计[J].软件,2010,31(12):65-69.
[6] Wu Qiyan,Miao Changyun,Wu Zhigang.The Design of Voice Alarm Terminal Based on MSP430. ICAIC(2011),Part II,CCIS 225,140-147(2011).
关键词:MSP430;CAN总线;I/O模块;通讯接口
中图分类号:TP332.3文献标识码:A文章编号:1009-3044(2012)22-5470-04
Design of Input and Output Modules Based on MSP430 and CAN Bus
CAO Xue-yan1, ZHANG Bo1, WANG Hai-rui2
(1.School of Mechanical Engineering and Automation, North University of China, Taiyuan 030051, China; 2.Chinese People`s Liberation Army Military Represent Office Residenting in 617 Factory, Baotou 014032, China)
Abstract: This paper designes a input and output system of field node controlling center with MSP430 ultra-low-power microcontroller based on the low power operation of MSP430 and powerful anti-interference performance of CAN bus.Using CAN bus interface achieves the long-distance data transitance with upper machince . The system performances well in acquiring and outputing of analog and digital signals, displaying real-time and long distance communication of data . Therefore , the system provides a reference to the application of field devices .
Key words: MSP430; CAN bus; I/O modules; communication interface
随着工业化的快速发展,许多工业现场设备控制逐渐向集成化方向发展。利用MSP430单片机构成现场设备的控制节点,不仅可以完成数据的采集和处理、而且可完成数据的运算处理和数据输出等功能,增加了现场一级的控制功能,现场节点得到的数据通过现场总线传送到控制室的计算机上,通过计算机实时监视各个仪表的运行状况,并可以保存控制节点上传来的数据。通过使用CAN现场总线,使用户可以大量减少繁杂的现场接线,而且传输速度快,传输距离远,通讯可靠。系统集成度得到改善,维护十分方便。
1系统总体结构
该系统设计了一种以单片机为底层核心,采集现场的数字量、模拟量[1]。并将采集的数据经过处理运算,利用CAN总线接口输出给上位机[2],上位机采用传统的计算机,这样方便软件进行数据处理。同时具有极限报警功能,LED灯、LCD显示屏显示输入输出信息的状态,有助于对设备进行监控。电源模块为各部分提供电源。系统的总体结构如图1所示。
图1系统总体结构
2硬件平台设计
2.1节点控制单元
系统的节点控制器负责协调各个部分良好工作,考虑到系统需要用到4路数字量的输入和输出,4路模拟量输入和输出,LCD的显示,同时需要控制CAN总线控制器SJA1000,这些需要占用较多的I/O端口,于是输入输出系统的节点控制器采用了TI公司的16位MSP430F149单片机[3],该型号单片机具有的I/O端口可以很好的满足该设计要求,同时功耗较低也是其它单片机所无法比拟的。MSP430F149单片机的基本特性:
具有16位的RISC结构,内核指令系统简洁,执行指令快,处理功能强;稳定工作电压在1.8~3.6V之间;灵活的时钟设置,有主系统时钟(MCLK)、辅助时钟(ACLK)、子系统时钟(SMCLK);内置了丰富的片内资源:片内提供温度传感器和12位的模数转换模块(ADC);6组可配置第二功能的I/O端口,每个引脚可单独配置成输入输出,其中有两个端口具有中断功能。
较多的片内存储器,该系列单片机拥有60KB的片内FLASH,同时提供较多的片内RAM;使用JTAG实现程序的代码下载,程序的运行及调控,通过该接口实现仿真调试功能,可以大大简化调试过程。
2.2 CAN总线接口设计
CAN控制器局域网是一种新型的串行总线。CAN总线可形成底层网络,完成现场自动化设备之间的多点数字通信,实现底层现场设备之间及生产现场与外界信息的交换,数据通信具有突出的可靠性、实时性、灵活性。
SJ1000是一种独立的的CAN控制器。全面支持CAN2.0B协议,通信速率可达1Mbps,支持11位和29位标识码,可编程的输出设置,具有BasicCAN和PeliCAN两种工作模式。该文采用PeliCAN模式,PeliCAN模式有很多寄存器,共同作用完成其功能。收发
器PCA82C250CAN总线收发器提供了CAN控制器与物理总线之间的接口,具有三种工作模式,高速模式、低速模式、待机模式。控制器与收发器共同组成一个CAN总线通讯结构。
在系统硬件接口设计时,由于所选的MSP430单片机的P1口和P2口具有中断功能,而其余的端口没有中断功能的,故选用P4口作为数据和地址总线对控制器进行数据和地址的操作,选用P3口的部分管脚来进行对控制器的读写和使能操作,同时通过P2.0所具有的中断功能来对控制器的中断进行响应。[4-5]电路如图2所示。
为了避免直接的电气或物理连接,SJA1000控制器并不是直接与82C250收发器相连,这里使用了光耦合器6N137,不但可以把信息的发出端和接收端电绝缘,可以对地电位差有很强的抗干扰能力,而且有抑制电磁干扰的能力。这些部分虽然增加了节点的复杂性,但是很大程度上提高了节点的安全性和稳定性。
图2 CAN接口电路
MSP430单片机采用1.8V~3.6V低压供电,而SJ1000控制器是5V电压供电,这两者之间进行数据交换时,两者之间存在着电平逻辑问题。这里采用74LVC4245双电源电平移位器,双电源保证两边端口的输出摆幅部能达到满电源幅值,并且有很强的噪声抑制性能。
2.3电源模块
系统微处理器MSP430单片机采用3.3V供电,而一般情况提供的是5V电压。所以设计中使用了TPS76033芯片,得到纹波小和稳压稳定的输出电压。
2.4数字量输入
数字量的输入模块一般是开关量形式的电压、电流,这些信号经常会产生瞬时高压、过电流或接触抖动。该文4路数字量以24VDC,4mA的形式输入,为了使输入信号安全可靠,在此采用了光电隔离,对外部信号进行滤波,电平转换和隔离保护。这里为保证其可靠性采用了芯片TLP521。电路如图3所示。
2.5模拟量的输入输出
本系统设计4路模拟量的输入,MSP430F149单片机自带12位的模数转换模块ADC12,可以很方便的实现模拟信号的采集。选择单片机的P6口作为4路模拟量的输入端口。同时系统拥有4路模拟量的输出,这里采用了ADI公司生产的AD664芯片,该芯片集成了4路完整的12位电压型输出DAC,并且每路均具有双缓冲锁存结构和回路读取功能,各端口可以通过数字I/O端口编程,此芯片能够较好的完成模拟量的输出功能。
2.6数字量的输出
数字量的输出模块要求能去驱动某些大功率设备,本设计系统中有4路数字量的输出,所以信号先经过ULN2803放大后,再由继电器进行输出,使输出能控制220VAC的设备。
图3数字量输入
图4数字量输出
2.7显示和报警
利用LCD显示屏显示模拟量的输入输出数据、系统的时间等,LCD显示屏功耗低、显示信息量大,寿命长和抗干扰能力强,已得到大量的使用。系统采用了12864液晶屏,体积小、重量轻、接口简单。数字量输入输出使用LED灯进行实时的显示,方便了现场操作人员的观察。[6]
为了设备的安全保护,这里使用了简单可靠的蜂鸣器进行极限报警,单片机端口的驱动能力较小,加入了音频功率放大器LM386,具有电源电压范围大,谐波失真小的特性。
3系统软件设计
该文设计的系统主要是数据的采集和输出,以及数据的通信。在设计中使用了微处理器作为节点控制核心,所以软件设计是很重要的。为了增加程序的可维护性与可移植性,采用了C语言编写,其编写的程序结构紧凑,效率较高。为了完成系统任务,其软件设计采用模块化设计思想,主要包括以下几部分:初始化程序、主处理模块、数据采集程序、显示程序,CAN报文的发送和接收。
3.1主处理模块
主程序模块流程图如图5所示。系统上电复位后,首先进入初始化程序,然后等待定时器的中断到来。进入中断后,对采集到的数据进行处理,然后发送给CAN接口,通过CAN总线将数据送到上位机。
3.2上电初始化
在系统上电复位之后需要对系统进行初始化,包括单片机的初始化和CAN控制器的初始化。单片机的初始化主要是端口的初始化、看门狗设置以及定时器初始化。CAN控制器SJA1000的初始化是在复位的模式下进行,在期间设置波特率,通过对时钟分频寄存器,验收代码寄存器,接收屏蔽寄存器,总线定时器和输出控制寄存器进行配置,在配置完成后回到工作状态,进行正常的通信任务。
3.3 CAN发送子程序
发送子程序负责节点报文的发送。发送时只需将待发送的数据按特定的格式组合成一帧报文,送入SJA1000发送缓冲区,然后启动发送即可。在将新报文放入缓冲器之前,主控器必须先检查状态寄存器的“发送缓冲器状态标志”。如果发送缓冲器是否为空,待发送缓冲器被释放,主控制器将新报文写入发送缓冲器并置位命令寄存器的发送标志(TR),启动发送。流程图如图6所示。
图5主程序流程图
图6发送数据流程图
4结论
基于MSP430的CAN总线的I/O模块系统的设计,主要完成了数字量和模拟量的输入输出接口设计,并通过CAN总线实现通讯功能。其工作性能稳定可靠,抗干扰能力强,功耗低,传输距离远,它必将在一些控制系统中及一些特殊的场合具有广泛的用途。
参考文献:
[1]刘银,曾立文,廖瑞,等.基于MSP430的多参数数据采集系统设计[J].煤矿机械,2011,32(6):171-172.
[2] Wang Qing.The Design of Reconfigurable Remote Monitor and Control System Based on CAN Bus.Electronics and Signal Processing[J]. LNEE 972011:117-125.
[3]胡大可.MSP430系列单片机C语言程序设计与开发[M].北京:北京航空航天大学出版社,2003.
[4]葛化敏,陈永,张彭程.基于CAN总线和MSP430的CO红外检测系统设计[J].电子设计工程,2009(12):32-34.
[5]袁立大,马洪连.轻轨列车改造项目中基于MSP430与SJA1000的CAN总线通信节点设计[J].软件,2010,31(12):65-69.
[6] Wu Qiyan,Miao Changyun,Wu Zhigang.The Design of Voice Alarm Terminal Based on MSP430. ICAIC(2011),Part II,CCIS 225,140-147(2011).