logo资料库

基于STM32的CAN_USB转换模块.pdf

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
2012 年 第 6 期 仪 表 技 术 与 传 感 器 Instrument Technique Sensor and 2012 No. 6 基于 STM32 的 CAN - USB 转换模块 王爱林,刘荣华,严 顶 ( 江苏自动化研究所,江苏连云港 222006) 摘要: 提出了一种基于 STM32F105 微控制器的 CAN - USB 转换模块设计方法,介绍了转换模块的软硬件设计思路。 转换模块结合了 CAN 总线和 USB 总线的优点,具有即插即用、在线设置波特率、在线创建 CAN 帧消息等特点。实践证 明: 转换模块能够很好地实现 PC 机与 CAN 设备的通信任务,为监测现场 CAN 总线设备提供了一种新途径。 关键词: STM32; USB; CAN; 转换模块 中图分类号: TP336 文献标识码: A 文章编号: 1002 - 1841( 2012) 06 - 0069 - 02 Design of CAN-USB Transformation Module Based on STM32 WANG Ai-lin,LIU Rong-hua,YAN Ding ( Jiangsu Automation Research Institute,Lianyungang 222006,China) Abstract: The paper proposed a design method of CAN-USB transformation module based on the STM32F105 microcontroller. It introduced the design plan of hardware and software. Combining the advantages of CAN bus and USB bus,the module has the characteristics of plug and play,baud rate setting online,CAN messages creating and so on. The practical results show that the transformation module can achieve the task of communication between the PC and CAN device well. It provides a new way of moni- toring CAN device on the spot. Key words: STM32; USB; CAN; transformation module 0 引言 目前,CAN-USB 转换接口方面的研究多数是基于 CAN 控 制芯片 SJA1000 或 USB 控制芯片 CH375 设计[1 - 3]的,设计方法 比较繁琐。文章基于 STM32F105 微控制器设计 了一种 CAN- USB 转换模块( 简称为转换模块) ,软硬件设计比较简单。 1 系统硬件设计 1. 1 STM32F105 微控制器 STM32F105 是基于 ARM Cortex-M3 内核的 32 位高性能微 控制器。接口资源丰富,支持 2 路 CAN 2. 0B 协议的 CAN 总线 图 1 CAN 接口硬件电路图 接口,3 路 SPI 接口,2 路 12 位 ADC 接口,1 路 12 位 DAC 接口, 2 路 I2 C 接口,1 路支持 USB2. 0 规范的 USB OTG FS 接口,6 路 定时器,5 路 USART 接口,GPIOS 多达 80 个,内核最高频率可 达 72 MHz. 支持两种调试接口: 串行接口和 JTAG 调试接口。 1. 2 CAN 接口设计 CAN 接口电路如图 1 所示。微控制器带有的 2 路 bxCAN ( Basic Extended CAN) 接口,支持 CAN 协议 2. 0A 和 CAN2. 0B 主动模式。波特率最高可达 1 Mbit / s,支持时间触发通信功能。 根据 STM32F105 集成 CAN 控制器结构,电路中采用高速 CAN 收发器 TJA1040,它增强了 EMC,在不上电时具有理想的无源 特性。TJA1040 芯片的 TXD、RXD 引脚直接与微处理器的 PB9 的控制器,支持主机端和设备端的功能,可配置为仅支持主机 端或仅支持设备端功能的控制器,遵从 USB 2. 0 规范。主机模 式和设备模式的区分是由 ID 线状态决定。当接入的是 USB 电 缆的 B 端,且 ID 线浮空时,内置的上拉电阻检测到 ID 线的高 电平,则控制器处于默认的设备模式下。USB 接口硬件电路如 图 2 所示。由于转换模块是属于 USB 设备模式的范畴,因此电 路中只 使 用 PA9 ( OTG-VBUS) 、PA11 ( OTG-DM) 、PA12 ( OTG- DP) 3 个引脚,PA10( OTG-ID) 引脚浮空,使得 USB OTG 处于设 备模式。芯片 USBLC6 用来实现 USB 总线的静电( ESD) 保护。 它支持高速 USB 2. 0 接口和 USB OTG 接口,并兼容 USB 1. 1 接 口的低速模式和全速模式。USB 端的接口采用 USB B 型插座。 ( CAN1-TX) 、PB8 ( CAN1-RX) 相连。电路中 R17 、C25 、R18 、C26 、 2 软件设计 C27 构成滤波电路,滤除 CAN 总线接口的干扰。R20 、R21 组 成 CAN 总线的终端匹配电阻,可以和外部 CAN 节点直接连接。 1. 3 USB 接口设计 转换模块功能是通过 USB 通信来实现 CAN 接口和 PC 机 的信息传输。因此,转换模块软件设计包括微控制器软件设计 和上位机软件设计。控制器软件分为 CAN 接口软件和 USB 接 USB OTG FS( USB On-the-Go Full-Speed) 是双重角色设备 口软件。上位机软件包括 USB 驱动程序和应用程序。 收稿日期: 2012 - 01 - 02 收修改稿日期: 2012 - 03 - 20 CAN 接 口 软 件 包 括 CAN 初 始 化、CAN 发 送 数 据 程 序 和 2. 1 CAN 接口软件
70 Instrument Technique and Sensor Jun. 2012 2. 2 USB 接口软件 USB 接口软件功能主要是配合 PC 机端的驱动程序和应用 程序,完 成 设 备 枚 举、信 息 传 输 等 过 程。USB 接 口 软 件 包 括 USB 初始化和 USB 中断服务程序。USB 初始化包含 USB 时钟 设置、USB 中断设置和 USB 设备特性设置等过程。USB 中断服 务程序流程图如图 4 所示。 图 2 USB 接口硬件电路图 CAN 接收数据中断程序。CAN 初始化包括 CAN 引脚使能、波 特率设置、标识符过滤设置等过程。在完成 CAN 的初始化设 置以后,CAN 就可以进行正常的通信任务。模块中的 CAN 节 点采 用 标 准 帧 格 式 和 扩 展 帧 格 式,由 于 CAN 节 点 用 来 采 集 CAN 网络中其他 CAN 节点的数据,所以程序采用 32 位过滤器 标识符屏蔽位模式,过滤器组寄存器设置为 00000000H。CAN 发送数据程序作为子程序,在 USB 通信 OUT 端点 2 中断中被 调用,将 PC 机 发 送 的 数 据 或 命 令 转 发 到 其 他 的 CAN 节 点。 CAN 接收数据程序,通过 CAN 接收 FIFO1 中断实现,主要采集 外部 CAN 总线设备发送的数据,存储到环形数据缓冲区中以 供上位机软件的读取。CAN 接收 FIFO1 中断可由 FIFO1 接收 到新报文、FIFO1 满、FIFO1 溢出三类事件产生。为了防止接收 数据丢失,程序中使用 FIFO1 接收新报文触发接收 FIFO1 中 断。CAN 接收数据中断程序流程图如图 3 所示。 图 3 CAN 接收数据中断程序流程图 CAN 接收数据环形缓冲区定义如下: #define CAN-RX-DATA-SIZE 5720 / / 定 义 CAN 接 收 数 据 缓 冲 区 大 小 5720 字节 uint8-t CAN-Rx-Buffer[CAN-RX-DATA-SIZE]; / / 定义 CAN 接收 数据 缓 冲区 图 4 USB 中断服务程序流程图 OTG FS( On-the-Go Full-Speed) ) 控制器在设备模式下,提 供 1 个控制端点 0、3 个 IN 端点、3 个 OUT 端点。控制端点 0 是 双向端点,仅用于处理控制信息。IN 端点和 OUT 端点根据应 用需要可以配置为同步传输、批量传输和中断传输。转换模块 中共使用 3 个端点,控制端点 0、批量传输端点 1 和批量传输端 点 2。端点 0 中断程序主要用于设备枚举。IN 端点 1 中断程序 uint32-t CAN-Rx-ptr-in = 0; / / 定义 CAN 数据缓冲区写数据指针 中首先查询发送数据标志位 USB-Tx 是否为 1。当 USB-Tx = 1 uint32-t CAN-Rx-ptr-out = 0; / / 定义 CAN 数据缓冲区读数据指针 时,判断当前缓冲区中是否有数据( CAN-Rx-length 是否为 0) , uint32-t CAN-Rx-length = 0; / / 定义 CAN 缓冲区中当前接收数据长度 有数 据,则 将 缓 冲 区 中 数 据 发 送 到 PC 端,否 则 清 零 标 志 位 对于环形缓冲区,在 CAN 接收中断程序中通过修改写数据 USB-Tx 并返回。OUT 端点 2 中断用于接收 PC 机端发送的数 指针不断将接收数据储存到环形缓冲区中。主程序循环检测缓 据和控制命令。如果 PC 机发送波特率修改命令,需对 CAN 重 冲区中是否接收到新的数据,如果有新的数据,主程序向 IN 端 新初始化,设置波特率。波特率设置命令定义为单 点 1 发送数据来启动 USB 通信中的 IN 端点传输,并设置发送数 据标志位 USB-Tx = 1,等待 IN 中断将缓冲区数据发送给 PC 机。 ( 下转第 73 页)
第 6 期 张卫等: 新型钻井液油气含量检测系统 73 由 6 图可知,C1 - C5 轻烃组分在 80 ℃ 水基钻井液中的真 实浓度与检测浓度基本构成线性对应关系,这与低浓度下线性 的亨利溶解度定律是一致的,此特性可为膜两侧数据标定提供 依据。 3. 2 系统指标 检测组分: C1 - C8 烷烃,苯、甲苯; 检测范围: 0 ~ 100% ; 最 小分析检测浓度: 10 ppm( C1 ) ; 分析周期: 90 s( C1 - C8 ) ,30 s ( C1 - C5 ) ; 工作温度: - 10 ~ 40 ℃ ; 供电: 220 V ± 1% V AC. 4 结束语 文中建立的新型气测录井系统,使用膜分离脱气和多通道 检测,灵敏度高,可实现定量分析检测,系统在中国石化某油田 完成了现场对比试验。系统整体运行正常,试验证明达到预期 图 5 软件功能架构图 3 试验与指标 3. 1 脱气试验 实现泥浆中的油气定量化检测,必须考察其半透膜脱气性 设计要求。系统的开发研制对提高油气评价准确性,克服弱油 能优劣,并测定膜两侧的浓度关联关系,即泥浆中油气真实浓 气储藏发现的难题有着重要意义。 度与样品气检测浓度之间的对应关系。将内含 C1 - C5 轻烃组 分体积浓度分别为 0. 2% 、0. 4% 、0. 6% 、0. 8% 、1% 的钻井液进 行膜分离实验,通过色谱分析,获取对应的 C1 - C5 轻烃组分检 测浓度值,即可获取如图 6 所示的 C1 - C5 轻烃组分真实浓度 与检测浓度关联图。 图 6 轻烃组分真实浓度与检测浓度关联图 ( 上接第 70 页) 字 节 变 量 CAN-Btr,其 取 值 可 以 为 04H、08H、 10H、20H、28H,对应的波特 率值分别为 1 Mbit / s、500 Kbit / s、 250 Kbit / s、125 Kbit / s、100 Kbit / s. 如果 PC 机发送数据帧或远 程帧,需调用 CAN 发送数据程序将接收到的信息直接发送到 其他的 CAN 节点。 2. 3 上位机软件 上位机软件包括 USB 驱动程序和应用程序。驱动程序设 计是基于 VISUAL C + + 6. 0、DDK 和 Driver Wizard 软件设计 的。Driver Wizard 提供的驱动向导,可以根据用户的需要,自动 生成代码框架。应用程序都是基于 VISUAL C + + 6. 0 软件设 计的。应用程序具有在线波特率设置、CAN 帧类型设置、CAN 帧格式设置、在线创建 CAN 帧消息等功能。应用程序界面如 图 5 所示。 3 结束语 文中基于 STM32F105 微控制器 设 计 的 CAN-USB 转 换 模 块,软硬件设计简单,能够很好地实现 PC 机和 CAN 设备的通 信任务。经过试验验证,转换模块最大数据传输率为1 000帧 / s 以上,在 波 特 率 分 别 为 1 Mbit / s、500 Kbit / s、250 Kbit / s、125 Kbit / s、100 Kbit / s 时,转换模块与 PC 机之间的 CAN 通讯准确 无误,能很好地满足对现场 CAN 总线的监控要求,具有良好的 应用前景。 参考文献: [1] 万天军,徐爱钧,李家绪. 基于 CH375A 的 CAN-USB 总线通信模 块设计. 计算机测量与控制,2007,15( 3) : 360 - 365. 参考文献: [1] 张卫,慈兴华,张光华,等. 钻井液气体分析检测技术研究. 天然气 工业,2006,26( 5) : 64 - 66. [2] 严国平,武庆河. 脱气器的现状及发展趋势探讨. 录井技术,1999, 10( 1) : 10 - 14. [3] POP J J,TAHERIAN R,POITZSCH M E,et al. Downhole measure- ment of formation characteristics while drilling: USA,7458257 [P]. 2008 - 10 - 29. [4] COENEN J G C. System for detecting gas in a wellbore during drilling: USA,7318343[P]. 2008 - 01 - 15. [5] JIMMY L. Detecting gas compounds for downhole fluid analysis: USA, 12198129 [P]. 2008 - 08 - 26. [6] WOLCOTT D K. Use of capillary-membrane sampling device to moni- tor oil drilling muds : USA,5469917 [P]. 1995 - 11 - 28. 作者简介: 张卫( 1970 - ) ,高级工程师,博士,主要从事石油勘探油气在 线检测技术研究。E-mail: zhangwei. sripe@ sinopec. com 图 5 应用程序界面 [2] 何静能,王平,程安宇. 基于 CY7C68013 的 CAN-USB 转换接口的 设计. 自动化与仪器仪表,2007( 3) : 26 - 27,5. [3] 李国洪,吴静臻,刘鲁源. 基于 C8051 的 CAN-USB 转换接口设计. 制造业自动化,2008,30( 3) : 70 - 72. [4] 萧世文. USB 2. 0 硬件设计. 北京: 清华大学出版社,2003. [5] 周立功. PDIUSBD12 USB 固件编程与驱动开发. 北京: 北京航空航 天大学出版社,2003. 作者简介: 王爱林( 1976 - ) ,工程师,硕士,主要从事计算机测量与控制 方面的研究工作。E-mail: ronghua5416@ 163. com
分享到:
收藏