基于CAN总线和VB的环境参数监测系统设计(2)
4系统软件设计
4.1SJA1000应用程序设计
CAN总线建立通信的过程包括系统上电和正常运行两个阶段。在系统上电阶段,首先要对STC12C5A60S2进行初始化设置,其次需要根据模式的选择对SJA1000的接收滤波、位定时逻辑等参数进行设置;在正常运行阶段,要准备待发送的报文,同时完成报文的接收并对发生的错误进行处理[7]。
可见,SJA1000的应用程序被分为SJA1000初始化程序、报文发送程序和报文接收程序。
4.1.1SJA1000初始化程序
单片机STC12C5A60S2在上电后首先运行其自身的复位程序,并在此后调用SJA1000的配置程序。配置程序在设置SJA1000的寄存器前,必须通过读复位模式/请求标志来检查SJA1000是否已处于复位模式,因为要写入配置信息的寄存器仅在复位模式下进行。在复位模式下,单片机STC12C5A60S2需要配置SJA1000的控制段寄存器、模式寄存器、时钟分频寄存器、验收码寄存器和验收屏蔽寄存器、总线定时寄存器以及输出控制寄存器。根据分析,SJA1000的初始化程序如下:
//****SJA1000初始化************************
SJAEntryResetMode();
//sja1000进入复位模式
REG_CAN_CDR=0x88;
//时钟分频;CDR.3=1时时钟关闭;
CDR.7=0时basicCAN;CDR.7=1时PeliCAN
SJASetBandRateStandard(ByteRate_100k);
//16M晶振,波特率设置
REG_CAN_IER=0x01;
//.1=0--关闭发送中断使能
REG_CAN_OCR=0xaa;
//配置输出控制寄存器
REG_CAN_CMR=0x04;//命令寄存器;释放接收缓冲器
SJASetAccCode(0x33,0x44,0x55,0x55);
//滤波
SJASetAccMask(0xff,0xff,0xff,0xff);
//屏蔽码设置
SJAQuitResetMode();
//退出复位模式
4.1.2SJA1000报文发送程序
采用SJA1000的中断请求控制报文的发送时,必须开放SJA1000的发送中断使能和单片机STC12C5A56S2的外部中断0,并设定SJA1000发送中断的优先级高于启动发送。报文的发送过程分为两个部分,一部分由STC12C5A56S2的主程序完成,另外一部分由SJA1000的发送中断服务程序完成,这两部分程序的流程图如图5(a)、(b)所示。
4.1.3SJA1000报文接收程序
根据CAN协议规范,报文的接收由CAN控制器SJA1000独立完成,收到的报文放在接收缓冲器内,同时将状态寄存器的接收缓冲器状态标志RBS和接收中断标志RI置位。如果报文接收被使能,单片机将接收缓冲器内的新报文读出,并存储到单片机的内存单元或外部数据存储器中,然后释放接收缓冲器。本设计采用中断请求SJA1000的控制段状态标志来控制,通过SJA1000中断控制报文接收的程序流程图如4.2PC机监视界面设计
VisualBasic是Microsoft公司推出的Windows编程工具,亦是最经典的可视化编程语言。本设计采用VB标准模块中的MSComm串口通信控件[8],完成CAN节点数据接收、分析并显示,包括通信端口选择、串行通信参数设置、串口控制以及数据显示区等,本系统上位PC机监视界面如图6所示。
5结语
系统调试过程中按照模块到系统的测试方法循序渐进。首先调试数据采集模块,通过串口调试助手查看温湿度的参数采集;然后调试CAN通信,通过数据传输测试CAN控制器以及CAN收发器工作状况;最后联调两部分和串口通信。
在调试过程中,各节点能够与上位PC机传送数据,并接受来自上位机的命令,运行可靠。结果表明:系统检测可靠、操作简单、人机界面友好,可达到设计的目标。
参考文献
[1]陈辉,周文超.基于CAN总线的远程数据分布式测控系统设计[J].电子设计工程,2012,20(17):186-188.
[2]连卫东.基于CAN总线的智能温压数据采集及实时监测系统设计[J].化工自动化及仪表,2012,39(1):68-70.
[3]浣上.基于CH341的USB-CAN适配器设计[J].现代电子技术,2012,35(18):50-52.
[4]张迎春,季茂胜.基于单片机的CAN总线系统设计[J].计算机与网络,2012(5):52-54.
[5]饶运涛,邹继军.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2007.
[6]陈祖海,潘明.基于SJA1000IP核的CAN总线通信系统[J].新器件新技术,2012(7):37-40.
[7]刘涛.基于89C51和SJA1000的CAN通信方法研究[J].电脑编程技巧与维护,2011(4):87-88.
[8]周军,尹岗.在VB中对数据库和串口操作的实现[J].电子测量技术,2010(5):93-95.
期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。
【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
投稿辅导服务咨询与期刊合作加盟
陆老师联系QQ:
蒋老师联系QQ:
刘老师联系QQ:
联系电话:18015016272
17327192284
投稿辅导投稿邮箱:zgqkk365@126.com
期刊推荐
- 《课程教育研究》 旬刊 国家级
- 《网络空间安全》(信息安全与技术)月刊 国
- 《价值工程》旬刊 国家级 科技统计源期刊
- 《高教论坛》 月刊 省级
- 《法制与社会》旬刊 省级
- 《中国教育学刊》月刊 14版北大核心
- 《语文建设》 旬刊 14版北大核心
- 《中国绿色画报》 月刊 国家级
- 《社科纵横》季刊 社科类优秀期刊
- 《求索》月刊 14版北大核心期刊
- 《财会月刊》旬刊 14版北大核心
- 《艺术品鉴》 月刊 省级
- 《中华建设》月刊 国家级 建设类优秀期刊
- 《教学与管理》旬刊 北大核心
- 《当代经济》 旬刊 省级
- 《新课程研究》旬刊 省级 教育类优秀学术期
- 《文教资料》 旬刊 省级
- 《学术界》 月刊 双核心
- 《吉林教育》旬刊 省级 教育类学术期刊
- 《中国农业资源与区划》 月刊 14版北大核心
- 《继续教育研究》月刊 北大核心期刊
- 《财经界(学术版)》半月刊 国家级
- 《电影评介》半月刊 14版北大核心
- 《公路交通科技》 月刊 北大核心
- 《新闻传播》月刊 省级 新闻类优秀期刊