打印
[应用相关]

STM32做CANOPEN主站与从站的开发

[复制链接]
楼主: wangjiahao88
手机看帖
扫描二维码
随时随地手机跟帖
21
wangjiahao88|  楼主 | 2019-8-20 15:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
    A82C250是Philips开发的CAN物理层与数据链路层协议AS工C芯片,用于将
STM32F103ZET6微处理器CAN发送报文引脚TTL电平信号转换成标准的CAN总线信号,
同时将网络上的CAN总线信号电平转换为微处理器可以接收处理的TTL电平,是处理器
与外部CAN网络之间的接口。

使用特权

评论回复
22
wangjiahao88|  楼主 | 2019-8-20 15:46 | 只看该作者
    STM32F103ZET6通过A82C250芯片与以N网络交换数据,图3-7是以N通信接口的
电路图。微处理器的CAN收发引脚连接到A82C250芯片上,微控制器引脚PB9与PB8分
别连接到A82C250芯片的CAN_ Tx与CAN_ Rx引脚上,A82C250的CAN总线信号CAN_ H与
CAN_ L分别通过DB9接头的第6与第2引脚连接到CAN网络中,这也是CAN协议中约定
的规范,以保证不同CAN控制器节点之间的互联。


使用特权

评论回复
23
wangjiahao88|  楼主 | 2019-8-20 15:47 | 只看该作者
    CANopen运动控制主从站这种硬件结构较为简单、方便,实现了CANopen通讯物理
层与数据链路层基础,在这种硬件架构下,CANopen协议通过软件定义CAN报文的收发
与解读规则来实现,受微处理器与A82C250芯片性能的限制,这种架构能实现简单的
CANopen主从站功能及简单的运动控制算法。
    如果要求实现复杂的CANopen主从站功能或者运动控制算法,就要求使用高性能的
处理器芯片。高性能的处理器芯片意味着较高的运算频率与较大的数据与代码存储空
间,例如ARMS或者ARM11系列处理器。同时CAN总线控制器芯片可以采用SJA1000或
者用高速FPGA来实现。

使用特权

评论回复
24
wangjiahao88|  楼主 | 2019-8-20 15:48 | 只看该作者
    本文STM32F103ZET6硬件编程开发采用KE工L MDK开发环境。KE工L MDK是ARM公司
提供的主流开发工具。图3-8是STM32F103的MDK开发环境界面。KE工L软件集成了包
括C编译器,宏汇编,连接器,库管理与仿真调试器在内的开发环境,并且界面友好,
易于调试,软件仿真方面的功能也很完善。

使用特权

评论回复
25
wangjiahao88|  楼主 | 2019-8-20 15:48 | 只看该作者

使用特权

评论回复
26
wangjiahao88|  楼主 | 2019-8-20 15:49 | 只看该作者
CAN通讯底层驱动是在STM32微处理器上实现的,为了便于STM32微控制器的开发使用,意法半导体开发了STM32系列微控制器的固件库代码,提供了一系列与控制器外设配置应用相关的应用函数接口,并将这些代码资源集成到MDK开发环境中。控制器主从站软件CAN通讯部分参考了STM32微处理器的固件库资源,主从站软件中与CAN通讯相关的AP工函数主要有:以N节点初始化与节点管理、以N状态控制、报文标识符滤波,发送/接收报文、设置CAN波特率,设置中断等。这些函数是实现CAN通讯的软件基础。CAN底层驱动是在STM32上实现的,因此CAN底层配置之前要对微处理器进行配置,以使能微处理器与CAN通讯相关的功能。

使用特权

评论回复
27
wangjiahao88|  楼主 | 2019-8-20 15:49 | 只看该作者

使用特权

评论回复
28
wangjiahao88|  楼主 | 2019-8-20 15:50 | 只看该作者

使用特权

评论回复
29
wangjiahao88|  楼主 | 2019-8-20 15:51 | 只看该作者
    实现对象字典最简单的方法是在设备存储区内定义一个比较大的空间块,在存储空
间每个单元按照CANopen规范定义所有的对象,这种方法使用存储区间的物理地址作为
对象字典的索引值,并且每个对象包含子索引的数量是不确定,只能预留好每个对象最
大的空间。这种方式建立的对象字典包含了许多不必要的对象,必然浪费了大量的设备
存储空间。所以对象字典这种实现方法不现实。

使用特权

评论回复
30
wangjiahao88|  楼主 | 2019-8-20 15:52 | 只看该作者

使用特权

评论回复
31
wangjiahao88|  楼主 | 2019-8-20 15:53 | 只看该作者
    设备对象字典结构中包含了实现CANopen通讯功能必须的对象,这些对象包括设备
信息,设备节点工D,设备的过程数据对象的通讯参数与映射参数、服务数据对象信息,
设备节点状态信息、错误管理信息等内容。在要求实现节点监控功能的节点中,对象字
典包括记录各个节点状态信息与监控设置的数据块。
    在运动控制主从站中,对象字典还必须包括运动控制对象,这些对象根据主从站的
运动控制的要求来设置,这种设置要求遵循CANopen的运动控制规范,例如DS401和
DS402规范。主从站的对象定义要与CANopen规范保持一致,使得主从站节点可以与
CANOPEN网络中其它设备相互兼容。
    主从站对象字典是软件中定义的struct_ CO_ Data类型全局变量,软件在任何时候
都可以对对象字典进行访问,对象字典的修改取决于对象的属性与SDO功能,部分对象
根据应用需要设置为不可更改属性,例如设备的类型信息及一些其它的定义。

使用特权

评论回复
32
wangjiahao88|  楼主 | 2019-8-20 16:06 | 只看该作者

使用特权

评论回复
33
wangjiahao88|  楼主 | 2019-8-20 16:07 | 只看该作者

使用特权

评论回复
34
wangjiahao88|  楼主 | 2019-8-20 16:07 | 只看该作者

使用特权

评论回复
35
wangjiahao88|  楼主 | 2019-8-20 16:11 | 只看该作者

使用特权

评论回复
36
wangjiahao88|  楼主 | 2019-8-20 16:16 | 只看该作者

使用特权

评论回复
37
wangjiahao88|  楼主 | 2019-8-20 16:17 | 只看该作者

使用特权

评论回复
38
wangjiahao88|  楼主 | 2019-8-20 16:17 | 只看该作者

使用特权

评论回复
39
wangjiahao88|  楼主 | 2019-8-20 16:17 | 只看该作者

使用特权

评论回复
40
wangjiahao88|  楼主 | 2019-8-20 16:18 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则