论文部分内容阅读
摘要:系统采用Cortex-M3内核的STM32F103VC芯片,对外部模拟信号进行数据采集,并将采集到的数据进行数字滤波、线性化等处理,最终通过CAN总线通信网络传输到主控站进行处理。同时采用GSM通信进行人机信息交互。实验结果表明,该系统可靠性强、通讯速度快、安装方便,适用于智能家居或工业环境下参数实时测控的需求。
关键词:嵌入式;GSM通信; CAN总线
中图分类号:TP 文献标志码:A
0 引言
随着经济的快速增长,快节奏的生活状态使得人们越来越注重生活的质量和品位。如何建立一个高效率、经济、稳定灵活的生活家居系统已成为当今世界的一个热点话题。
目前,国内外基于电话网通信类的智能家居技术产品较普遍,但家庭电话用户逐步减少,电话线路易被破坏,电话网通信有很大的局限性。采用CAN总线通信有利于通讯节点间的纠错调试,保障通信的精确稳定。
现场总线的通信仅限于现场范围的通信,无法实现远程通信。随着基于中国通讯商建立已有的电信网络(GSM 网络)覆盖范围的广阔化、无缝化,以及手机的日益普及,GSM通信成为了智能控制系统与人间实时通讯的最佳桥梁。
1 总体结构框架设计
1.1 GSM通信
人机远程通讯采用GSM模块以手持设备(手机)为硬件载体进行数据交互。以单片机为控制核心,进行信息反馈和远程智能控制,实现了远程情报传送、远程遥控等功能。
1.2 CAN总线现场布线
模块数量较多,使用并行通信线要占用大量的管道资源和信号线,因此选用CAN总线作为现场控制总线。CAN总线只需使用两根通讯线,所有模块可直接挂载到其通讯总线上,分别对接点进行分时一对一通信。为了確保模块间通信的稳定正常,采用双绞线作为通信线。双绞线采用一对互相绝缘的金属导线互相绞合的方式来抵御一部分外界电磁波干扰。在模块间进行双向串行通信时 ,CAN现场总线作为传输介质,具有以下功能:1、系统开放性;2、数据共享性与互操作性;3、现场控制智能化和自调性;4、系统高度分散性;5、超强适应性。
3 系统设计原理
3.1、CAN总线通信控制
3.1.1 ISO 11898国际标准
该标准采用CAN总线协议的车内高速通讯国际标准,将TJA1050作为数据收发器,定义了数据链路层和物理层。物理信令子层经由协议控制器实现与数据链路层的通信,同时协议控制器通过物理媒体连接子层接口和物理传输媒体进行连接。
3.1.2 CAN协议
采用CAN总线提供的物理层和数据链路层建立总线形拓扑结构网络,配合拟定的应用层协议实现整个系统中最重要的局域通信网络。协议如下:
1) 以帧ID作为子模块和主控器的ID。主控器的ID为150,已挂载在总线上子模块的ID从1开始排列;
2) 子模块和主控器只接收ID和与自己ID相同的信息帧;
3) 主控器定时轮流向子模块请求数据,以此来判断子模块的状态。如果一个子模块在设定时间内未响应主控的请求,主控在模块登记表中删除该模块;
4) 新挂载上总线的模块ID为0,并向主控器请求ID,直到主控器为其分配一个新的ID。
4 系统软件设计
4.1 CAN总线程序设计
软件调试环境采用 ARM 公司最新推出的针对各种嵌入式处理器的软件开发工具——MDK。它集成了业内最领先的技术,提供了完善的设备调试和软件仿真功能,包含了众多的案例模板和固件实例,满足中国多数软件开发工程师所需,支持多种调试接口(如UART JTAG 及 JLINK 等),大大减小开发难度, 缩短开发周期。本设计应用JLINK仿真器支持的SWD调试功能。
1)CAN 控制器的初始化
STM32F103内部集成了单路CAN控制器,初始化内容包括:CAN的I/O模式配置、CAN外设时钟配置、CAN中断优先级的分配使能、相应的CAN中断通讯模式初始化、波特率初始化及过滤器初始化。
2)报文发送
CAN发送报文数据的流程:对报文的请求发送后,等待成为最高优先级的邮箱后,软件对其不再有写的权限,此时邮箱处于预定发送状态,随后开始监听CAN总线上的数据,一旦CAN总线进入空闲状态,预定发送邮箱就转入发送状态,成功发送后该邮箱自动释放,以便后续报文写入数据。
3)报文接收
STM32中有两个三级邮箱深度的接收缓冲区,每个接收缓冲区都配备多个验收过滤器。CAN控制器首先将接收的报文标识符与已设定的验收过滤标识符进行匹配,若相匹配,则认为该报文有效,并被放入接收缓冲区;否则丢弃该报文的接收。
4.2总体系统软件设计
系统的软件设计采用C语言编写,子模块负责传感器信息采集,主控制模块负责所有信息的管理与实时监测。
CAN总线模块相关代码CAN协议以帧为单位进行数据收发,一切CAN总线的数据通信都是建立在以下基础数据结构和函数之上,其程序如下:
(1)CAN总线帧结构:
typedef struct
{
unsigned long int id; //数据帧的ID
peliCAN_FF_typedef ff; //扩展帧或者标准帧
peliCAN_RTR_typedef rtr;//数据帧或者远程帧
unsigned char length;//长度
unsigned char msgData[8];//数据
}peliCAN_Msg_StructTypedef; (2)对CAN结构体的配置函数:
void SetMsgStruct(
peliCAN_Msg_StructTypedef* structPointer,
unsigned long int Id, peliCAN_FF_typedef Ff,
peliCAN_RTR_typedef Rtr, unsigned char Length,
uint8_t x0, uint8_t x1, uint8_t x2, uint8_t x3,
uint8_t x4, uint8_t x5, uint8_t x6, uint8_t x7)
{
structPointer->id = Id;
structPointer->ff = Ff;
structPointer->rtr= Rtr;
structPointer->length = Length;
structPointer->msgData[0] = x0;
structPointer->msgData[1] = x1;
structPointer->msgData[2] = x2;
structPointer->msgData[3] = x3;
structPointer->msgData[4] = x4;
structPointer->msgData[5] = x5;
structPointer->msgData[6] = x6;
structPointer->msgData[7] = x7;
}
4结语
本设计方案借助于GSM网络通信技术和单片机的控制功能,以UC/OS II操作系统为操作平台,CAN控制局域网为通讯总线,實现了安防实时管理监控和远程控制。不仅可用于居民住宅,还可以用于仓库、厂房与花卉大棚等地方的安防监控与电路远程控制等,具有实现简单、成本低、适用范围广、安全可靠等优点,具有广泛的应用前景。
参考文献:
[1] 杨利平﹒基于网络技术的远程智能家居系统[J]﹒仪器仪表学报,2009,25(4):309-311.
[2] 刘松,赵忠,孙学磊.基于GSM的远程家庭智能监控系统设计[J].电子测量技术,2009,32(1):89-91.
[3] 张俊.SMS短消息传输的远端控制技术及其实现[J].仪器仪表学报,2003,24(4):610-611.
[4] 饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003:2-11.
[5] 郝成,岳树盛 计算机控制技术——工业控制工程应用理论与实践 [M].北京??.电子工业出版社
关键词:嵌入式;GSM通信; CAN总线
中图分类号:TP 文献标志码:A
0 引言
随着经济的快速增长,快节奏的生活状态使得人们越来越注重生活的质量和品位。如何建立一个高效率、经济、稳定灵活的生活家居系统已成为当今世界的一个热点话题。
目前,国内外基于电话网通信类的智能家居技术产品较普遍,但家庭电话用户逐步减少,电话线路易被破坏,电话网通信有很大的局限性。采用CAN总线通信有利于通讯节点间的纠错调试,保障通信的精确稳定。
现场总线的通信仅限于现场范围的通信,无法实现远程通信。随着基于中国通讯商建立已有的电信网络(GSM 网络)覆盖范围的广阔化、无缝化,以及手机的日益普及,GSM通信成为了智能控制系统与人间实时通讯的最佳桥梁。
1 总体结构框架设计
1.1 GSM通信
人机远程通讯采用GSM模块以手持设备(手机)为硬件载体进行数据交互。以单片机为控制核心,进行信息反馈和远程智能控制,实现了远程情报传送、远程遥控等功能。
1.2 CAN总线现场布线
模块数量较多,使用并行通信线要占用大量的管道资源和信号线,因此选用CAN总线作为现场控制总线。CAN总线只需使用两根通讯线,所有模块可直接挂载到其通讯总线上,分别对接点进行分时一对一通信。为了確保模块间通信的稳定正常,采用双绞线作为通信线。双绞线采用一对互相绝缘的金属导线互相绞合的方式来抵御一部分外界电磁波干扰。在模块间进行双向串行通信时 ,CAN现场总线作为传输介质,具有以下功能:1、系统开放性;2、数据共享性与互操作性;3、现场控制智能化和自调性;4、系统高度分散性;5、超强适应性。
3 系统设计原理
3.1、CAN总线通信控制
3.1.1 ISO 11898国际标准
该标准采用CAN总线协议的车内高速通讯国际标准,将TJA1050作为数据收发器,定义了数据链路层和物理层。物理信令子层经由协议控制器实现与数据链路层的通信,同时协议控制器通过物理媒体连接子层接口和物理传输媒体进行连接。
3.1.2 CAN协议
采用CAN总线提供的物理层和数据链路层建立总线形拓扑结构网络,配合拟定的应用层协议实现整个系统中最重要的局域通信网络。协议如下:
1) 以帧ID作为子模块和主控器的ID。主控器的ID为150,已挂载在总线上子模块的ID从1开始排列;
2) 子模块和主控器只接收ID和与自己ID相同的信息帧;
3) 主控器定时轮流向子模块请求数据,以此来判断子模块的状态。如果一个子模块在设定时间内未响应主控的请求,主控在模块登记表中删除该模块;
4) 新挂载上总线的模块ID为0,并向主控器请求ID,直到主控器为其分配一个新的ID。
4 系统软件设计
4.1 CAN总线程序设计
软件调试环境采用 ARM 公司最新推出的针对各种嵌入式处理器的软件开发工具——MDK。它集成了业内最领先的技术,提供了完善的设备调试和软件仿真功能,包含了众多的案例模板和固件实例,满足中国多数软件开发工程师所需,支持多种调试接口(如UART JTAG 及 JLINK 等),大大减小开发难度, 缩短开发周期。本设计应用JLINK仿真器支持的SWD调试功能。
1)CAN 控制器的初始化
STM32F103内部集成了单路CAN控制器,初始化内容包括:CAN的I/O模式配置、CAN外设时钟配置、CAN中断优先级的分配使能、相应的CAN中断通讯模式初始化、波特率初始化及过滤器初始化。
2)报文发送
CAN发送报文数据的流程:对报文的请求发送后,等待成为最高优先级的邮箱后,软件对其不再有写的权限,此时邮箱处于预定发送状态,随后开始监听CAN总线上的数据,一旦CAN总线进入空闲状态,预定发送邮箱就转入发送状态,成功发送后该邮箱自动释放,以便后续报文写入数据。
3)报文接收
STM32中有两个三级邮箱深度的接收缓冲区,每个接收缓冲区都配备多个验收过滤器。CAN控制器首先将接收的报文标识符与已设定的验收过滤标识符进行匹配,若相匹配,则认为该报文有效,并被放入接收缓冲区;否则丢弃该报文的接收。
4.2总体系统软件设计
系统的软件设计采用C语言编写,子模块负责传感器信息采集,主控制模块负责所有信息的管理与实时监测。
CAN总线模块相关代码CAN协议以帧为单位进行数据收发,一切CAN总线的数据通信都是建立在以下基础数据结构和函数之上,其程序如下:
(1)CAN总线帧结构:
typedef struct
{
unsigned long int id; //数据帧的ID
peliCAN_FF_typedef ff; //扩展帧或者标准帧
peliCAN_RTR_typedef rtr;//数据帧或者远程帧
unsigned char length;//长度
unsigned char msgData[8];//数据
}peliCAN_Msg_StructTypedef; (2)对CAN结构体的配置函数:
void SetMsgStruct(
peliCAN_Msg_StructTypedef* structPointer,
unsigned long int Id, peliCAN_FF_typedef Ff,
peliCAN_RTR_typedef Rtr, unsigned char Length,
uint8_t x0, uint8_t x1, uint8_t x2, uint8_t x3,
uint8_t x4, uint8_t x5, uint8_t x6, uint8_t x7)
{
structPointer->id = Id;
structPointer->ff = Ff;
structPointer->rtr= Rtr;
structPointer->length = Length;
structPointer->msgData[0] = x0;
structPointer->msgData[1] = x1;
structPointer->msgData[2] = x2;
structPointer->msgData[3] = x3;
structPointer->msgData[4] = x4;
structPointer->msgData[5] = x5;
structPointer->msgData[6] = x6;
structPointer->msgData[7] = x7;
}
4结语
本设计方案借助于GSM网络通信技术和单片机的控制功能,以UC/OS II操作系统为操作平台,CAN控制局域网为通讯总线,實现了安防实时管理监控和远程控制。不仅可用于居民住宅,还可以用于仓库、厂房与花卉大棚等地方的安防监控与电路远程控制等,具有实现简单、成本低、适用范围广、安全可靠等优点,具有广泛的应用前景。
参考文献:
[1] 杨利平﹒基于网络技术的远程智能家居系统[J]﹒仪器仪表学报,2009,25(4):309-311.
[2] 刘松,赵忠,孙学磊.基于GSM的远程家庭智能监控系统设计[J].电子测量技术,2009,32(1):89-91.
[3] 张俊.SMS短消息传输的远端控制技术及其实现[J].仪器仪表学报,2003,24(4):610-611.
[4] 饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M].北京:北京航空航天大学出版社,2003:2-11.
[5] 郝成,岳树盛 计算机控制技术——工业控制工程应用理论与实践 [M].北京??.电子工业出版社