论文部分内容阅读
【摘要】本文通过蓝牙基带控制器芯片MT1020A结合PH2041无线收发器接收并发送接入点数据,实现了工业现场、PDA与上位机的三方通信。
【关键词】蓝牙; HCI协议;无线通信;蓝牙基带控制器;个人数字助理
【中图分类号】G632【文献标识码】B 【文章编号】1001-4128(2011)01-0018-02
1 引言
随着工业技术的发展,DCS成了现代化工业的标准,而将蓝牙技术与PDA结合应用于工业现场,不但减少了很多不方便的接线,控制更加集中与快捷。
目前PDA主要应用于地图导航领域,而蓝牙技术主要应用于手机电脑等电子产品,而在工业现场应用还较少。不久的将来PDA一定会更加的推广流行,那时的工业现场作业会更加的方便与高效。
2 蓝牙系统结构
蓝牙技术是一种取代数据电缆的短距离无线通信技术,能完成点对点对多点的无线难。蓝牙技术的工作频段为全球开放的2.4GHzISM频段,该频段能够保证人们在施行时可以毫无障碍且方便可靠地合作蓝牙设备。
蓝牙SIG 开发了蓝牙协议规范,蓝牙协议规范允许开发人员开发基于可互操作的无线模块和数据通信协议的交互式服务和应用, 目的是使符合该规范的各种应用之间能够实现互操作。
蓝牙1.0 标准由两个文件组成。一个是核心部分(FoundationCore),它规定的是设计标准。另一个叫协议子集部分(FoundationProfile),它规定的是运作性准则。蓝牙协议可以分为4 层,即核心协议层、电缆替代协议层、电话控制协议层和采纳的其它协议层。
MT1020A是MITEL公司推出的低成本、微功耗蓝牙基带控制器芯片。蓝牙USB 适配器采用CSR BlueCore 04,市场价格大概在三十到四十元左右,用时先向PC机里面装相应的驱动程序,再将USB适配器插入PC机的USB接口中即可与MT1020A端和PDA端进行通信。
PDA就是“个人数码助理”。 t1.jpg (41.62 KB)
2006-10-25 20:11
由于PDA具有台式电脑某些功能,而且体积小巧,便于携带,所以有些人把PDA称作“掌上电脑”。大多数蓝牙系统都是在Palm操作系统或Pocket PC平台上设计的。Palm操作系统是PalmSource开发的一种功能强大的操作系统;Pocket PC操作系统由微软开发,是运行PDA设备的Windows CE的子集。
3 Visual Stdio 2008环境下的PDA Windows应用程序设计
单片机端的软件在Keil 平台下进行嵌入式C 编程实现, 传输层采用UART,单片机通过UART 控制蓝牙模块。软件包括初始化, 蓝牙交互, 处理数据三个模块。
3.1.1 初始化。
初始化包括系统初始化和蓝牙初始化。初始化程序主函数如下:
main.c
main( )
sys_init( )
bt_init( )
uart.c
uart_init( )
3.1.2 蓝牙交互。
蓝牙交互部分的程序主函数如下:
bt_inquiry( )
bt_create_connection( ...)
bt_send_acl_data( ...)
bt_disconnection( ...)
3.1.3 处理数据。
数据结构方面, 程序按照HCI 规范构造了HCI指令分组cmd_pkt, HCI 事件分组event_pkt 和HCIACL 数据分组acl_pkt 的数据结构, 并设计了用于标识当前蓝牙设备的hci_device 结构体, 包括蓝牙设备配置信息hci_info, 蓝牙连接信息hci_con 和用于存储返回分组信息的接收缓冲区hci_buf[1000]。
3.2 PDA端的软件设计。
目前,国内PDA 基本采用Windows Mobile 操作系统,基于Windows Mobile 操作系统的智能终端设备分Smart Phone 和Pocket PC 两大类。其中,Smart Phone 为智能手机系统, Pocket PC 为个人掌上电脑。
在Windows CE 系统中,串口与其他通信设备是作为文件进行处理的。本文对蓝牙串口进行操作用到了C #2008 中的SerialPort 类。
3.2.1打开串口资源。
打开串口资源只需调用SerialPort类的Open 方法即可打开串口连接。方法如下:
try
{if (!this.serialPort.IsOpen)
this.serialPort.Open();}
3.2.2PDA通信读写操作。
在成功设置通信参数并打开串口连接后,可采取事件触发的方式对数据进行接收与发送处理。本文使用SerialPort 类的DataReceived 事件方法来处理SerialPort 对象的数据接收事件,同时还要用到SerialDataReceivedEvent Handler 委托来处理SerialPort 对象的DataReceived 事件,使用SerialPort类中的DataWrite事件方法来处理数据的发送。
3.2.3 关闭串口。
SerialPort 类的Close 方法可以关闭端口连接。方法如下:
try
{
if (this.serialPort.IsOpen)
this.serialPort.Close();
}
3.3 PC端的软件设计
PC 端硬件连接比较简单, 将蓝牙USB 适配器直接通过USB 连接到PC 上即可, 需要注意的是, 插上适配器后, 如果是在XP 系统下, 系统会自动装载蓝牙适配器驱动程序, 因为在此是要开发自己的简单应用程序, 而自动安装的驱动程序是针对高级应用开发的, 覆盖了HCI 层, 因此需要将其卸载, 安装针对特定适配器的HCI 驱动程序。
4 基于PDA的工业现场蓝牙通信系统设计
在整个工业现场蓝牙通信系统的设计过程当中,首先设计硬件部分,再设计软件部分。调试时分PDA端与PC端,PDA端与工业接入端,PC端与工业接入端三部分分别调试,调试成功一部分再进行下一部分的调试,若有问题及时查找原因进行更正。
PDA远程PID控制的设想:在PDA的Windows应用程序中可用SerialPort类的WriteLine()函数将控制工业设备的P、Ti、Td,参数写入一个数组controldata[]中,并通过蓝牙发送给MT1020A的I/O串行数据输入端口,经内部ARM内核处理成相关的PID控制信号通过MT1020A端I/O串行数据输出端输出,再经过一个量程转换器转换成能控制仪表的4-20mA的控制信号控制设备进行PID调节。
5 结束语
在本设计中通过将MT1020A与工业现场的仪表或传感器相连形成工业现场接入点的设计,通过PC机与工业接入点间的通信实现了上位机的远程监控。这种远程移动式监控的方式体现了工业现场的集中控制分散管理的现代化管理思想,让现场的工控机实现对现场设备随时随地的监督与控制。
参考文献
[1] Karli Watson,Christian Nagel著,齐立波译.C-#入门经典[M].北京:清华大学出版社,2006.5.3.
[2]马忠梅,籍顺心等.单片机的C语言应用设计[M].北京:北京航空航天大学出版社,2007.10.1.
[3]邓力编著.Visual C++简明教程[M].青苹果电子图书系列,2005.6.2.
【关键词】蓝牙; HCI协议;无线通信;蓝牙基带控制器;个人数字助理
【中图分类号】G632【文献标识码】B 【文章编号】1001-4128(2011)01-0018-02
1 引言
随着工业技术的发展,DCS成了现代化工业的标准,而将蓝牙技术与PDA结合应用于工业现场,不但减少了很多不方便的接线,控制更加集中与快捷。
目前PDA主要应用于地图导航领域,而蓝牙技术主要应用于手机电脑等电子产品,而在工业现场应用还较少。不久的将来PDA一定会更加的推广流行,那时的工业现场作业会更加的方便与高效。
2 蓝牙系统结构
蓝牙技术是一种取代数据电缆的短距离无线通信技术,能完成点对点对多点的无线难。蓝牙技术的工作频段为全球开放的2.4GHzISM频段,该频段能够保证人们在施行时可以毫无障碍且方便可靠地合作蓝牙设备。
蓝牙SIG 开发了蓝牙协议规范,蓝牙协议规范允许开发人员开发基于可互操作的无线模块和数据通信协议的交互式服务和应用, 目的是使符合该规范的各种应用之间能够实现互操作。
蓝牙1.0 标准由两个文件组成。一个是核心部分(FoundationCore),它规定的是设计标准。另一个叫协议子集部分(FoundationProfile),它规定的是运作性准则。蓝牙协议可以分为4 层,即核心协议层、电缆替代协议层、电话控制协议层和采纳的其它协议层。
MT1020A是MITEL公司推出的低成本、微功耗蓝牙基带控制器芯片。蓝牙USB 适配器采用CSR BlueCore 04,市场价格大概在三十到四十元左右,用时先向PC机里面装相应的驱动程序,再将USB适配器插入PC机的USB接口中即可与MT1020A端和PDA端进行通信。
PDA就是“个人数码助理”。 t1.jpg (41.62 KB)
2006-10-25 20:11
由于PDA具有台式电脑某些功能,而且体积小巧,便于携带,所以有些人把PDA称作“掌上电脑”。大多数蓝牙系统都是在Palm操作系统或Pocket PC平台上设计的。Palm操作系统是PalmSource开发的一种功能强大的操作系统;Pocket PC操作系统由微软开发,是运行PDA设备的Windows CE的子集。
3 Visual Stdio 2008环境下的PDA Windows应用程序设计
单片机端的软件在Keil 平台下进行嵌入式C 编程实现, 传输层采用UART,单片机通过UART 控制蓝牙模块。软件包括初始化, 蓝牙交互, 处理数据三个模块。
3.1.1 初始化。
初始化包括系统初始化和蓝牙初始化。初始化程序主函数如下:
main.c
main( )
sys_init( )
bt_init( )
uart.c
uart_init( )
3.1.2 蓝牙交互。
蓝牙交互部分的程序主函数如下:
bt_inquiry( )
bt_create_connection( ...)
bt_send_acl_data( ...)
bt_disconnection( ...)
3.1.3 处理数据。
数据结构方面, 程序按照HCI 规范构造了HCI指令分组cmd_pkt, HCI 事件分组event_pkt 和HCIACL 数据分组acl_pkt 的数据结构, 并设计了用于标识当前蓝牙设备的hci_device 结构体, 包括蓝牙设备配置信息hci_info, 蓝牙连接信息hci_con 和用于存储返回分组信息的接收缓冲区hci_buf[1000]。
3.2 PDA端的软件设计。
目前,国内PDA 基本采用Windows Mobile 操作系统,基于Windows Mobile 操作系统的智能终端设备分Smart Phone 和Pocket PC 两大类。其中,Smart Phone 为智能手机系统, Pocket PC 为个人掌上电脑。
在Windows CE 系统中,串口与其他通信设备是作为文件进行处理的。本文对蓝牙串口进行操作用到了C #2008 中的SerialPort 类。
3.2.1打开串口资源。
打开串口资源只需调用SerialPort类的Open 方法即可打开串口连接。方法如下:
try
{if (!this.serialPort.IsOpen)
this.serialPort.Open();}
3.2.2PDA通信读写操作。
在成功设置通信参数并打开串口连接后,可采取事件触发的方式对数据进行接收与发送处理。本文使用SerialPort 类的DataReceived 事件方法来处理SerialPort 对象的数据接收事件,同时还要用到SerialDataReceivedEvent Handler 委托来处理SerialPort 对象的DataReceived 事件,使用SerialPort类中的DataWrite事件方法来处理数据的发送。
3.2.3 关闭串口。
SerialPort 类的Close 方法可以关闭端口连接。方法如下:
try
{
if (this.serialPort.IsOpen)
this.serialPort.Close();
}
3.3 PC端的软件设计
PC 端硬件连接比较简单, 将蓝牙USB 适配器直接通过USB 连接到PC 上即可, 需要注意的是, 插上适配器后, 如果是在XP 系统下, 系统会自动装载蓝牙适配器驱动程序, 因为在此是要开发自己的简单应用程序, 而自动安装的驱动程序是针对高级应用开发的, 覆盖了HCI 层, 因此需要将其卸载, 安装针对特定适配器的HCI 驱动程序。
4 基于PDA的工业现场蓝牙通信系统设计
在整个工业现场蓝牙通信系统的设计过程当中,首先设计硬件部分,再设计软件部分。调试时分PDA端与PC端,PDA端与工业接入端,PC端与工业接入端三部分分别调试,调试成功一部分再进行下一部分的调试,若有问题及时查找原因进行更正。
PDA远程PID控制的设想:在PDA的Windows应用程序中可用SerialPort类的WriteLine()函数将控制工业设备的P、Ti、Td,参数写入一个数组controldata[]中,并通过蓝牙发送给MT1020A的I/O串行数据输入端口,经内部ARM内核处理成相关的PID控制信号通过MT1020A端I/O串行数据输出端输出,再经过一个量程转换器转换成能控制仪表的4-20mA的控制信号控制设备进行PID调节。
5 结束语
在本设计中通过将MT1020A与工业现场的仪表或传感器相连形成工业现场接入点的设计,通过PC机与工业接入点间的通信实现了上位机的远程监控。这种远程移动式监控的方式体现了工业现场的集中控制分散管理的现代化管理思想,让现场的工控机实现对现场设备随时随地的监督与控制。
参考文献
[1] Karli Watson,Christian Nagel著,齐立波译.C-#入门经典[M].北京:清华大学出版社,2006.5.3.
[2]马忠梅,籍顺心等.单片机的C语言应用设计[M].北京:北京航空航天大学出版社,2007.10.1.
[3]邓力编著.Visual C++简明教程[M].青苹果电子图书系列,2005.6.2.