CAN接口配置
由于CAN总线的高效率、高可靠性、低成本等特点,CAN总线已被已被广泛应用于各电子领域。
在AWorks中已将CAN总线通讯做了完善的处理,预留了丰富的接口供用户使用,用户无需进行CAN总线底层代码的编写,只需调用接口实现功能逻辑抓取数据即可,方便用户快速使用CAN总线,预留接口部分如图2.1所示。
图2.1 CAN预留接口
更多接口可以参考AWorks标准API参考手册V1.01。
1、CAN配置
每一个外设在AWorks中都有对应例程,比如GPS、GPRS、CAN、IIC、LCD、RTC等,用户可自行上https://www.zlg.cn官网自行下载SDK包,demo_can.c在SDK包examplesperipheralcommoncan目录下,将例程文件加入到工程后进行CAN的配置,步骤如下:
外设使能
在工程文件中有一个工程参数配置文件:aw_prj_params.h,可在该文件里进行硬件裁剪、组件裁剪、资源配置等,在M1052核心板中提供两路CAN供客户使用,此处使能CAN1,程序清单如2.1所示。
程序清单2.1 CAN1使能
硬件参数配置确认
CAN1硬件参数配置文件在工程目录user_configwbl_hwconf_usrcfgwbl_hwconf_imx1050_flexcan1.h下,硬件参数包含了CAN所使用的引脚、接收数据大小等,最终由一个结构体将数据打包传入底层,原型如程序清单2.2所示。
程序清单2.2 硬件设备信息
应用程序
在外设使能完成、硬件配置参数确认完成后,查看demo_can.c应用程序,部分代码如程序清单3.1所示。
程序清单3.1 部分代码
在程序清单3.1中,使用了任务管理、互斥信号量、消息队列实现数据的自发自收,程序中概念可参考AWorks简介下的多任务服务、信号量、消息队列小节。
软硬件连接与软件设置
1、硬件连接
本例程所用产品由广州致远电子电子有限公司制造,开发板型号:M105x-EV-Board,CAN分析仪:USBCAN-2E-U,信号转换器:AP-UART-CAN,如图4.1所示。
图4.1 硬件图
实物连接图如图4.2所示。
图4.2 实物连接图
如图4.2所示,硬件线路连接在图中已经标出,选用AP-UART-CAN是因为M105x-EV-Board开发板中没有CAN信号隔离收发器,因而需要外接CAN信号隔离收发器。
其中CAN分析仪有两路CAN通道——CAN0和CAN1,AP-UART-CAN信号转换器具有7路串口(4路485和3路232)和2路CAN电气隔离信号转换通道。
2、软件配置
在连接完成硬件后,配置CAN数据收发软件,图中所用工具为CANTest,如图4.3所示,可以在官网自行搜索下载。
图4.3 CANTest
打开CANTest默认选择确认,如需修改,客户自行选择,如图4.4所示。
图4.4 CANTest启动界面
完成启动后选择设备,如图4.5所示,点击左上角选择设备,会出现一串设备列表信息,选择USBCAN-2E-U,如果是其他设备,则选择对应设备名称,ZLG致远电子所有的CAN分析仪都被包含在该列表里。
图4.5 选择设备信息
完成设备选择后,自动弹出打开设备选项,默认设备索引号0,选择CAN通道0,波特率500K,如有不同用户自行修改,点击确定,如图4.6所示。
图4.6 通讯参数设置
点击确定并启动CAN,会自动弹出滤波设置,选择默认即可,无需滤波,如需要滤波设置,自行选择滤波模式以及滤波帧,如图4.7所示。
图4.7 滤波设置
默认选择接收所有数据,点击确定,CANTest软件配置完成,可在基本操作处设置要发送的数据,显示界面如图4.8所示。
图4.8 配置完成界面
在软硬件设置完成后,将代码下载到开发板中,设置帧ID为0x00000001,发送数据为AA 01 02 03 04 05 06 07,接收结果如图4.9所示。
图4.9 发送接收结果
在图4.9中可见,数据发送与接收一致。在AWorks中使用使用CAN通讯,只需调用预留接口、配置些许参数、连接硬件设置软件即可获取数据,省去了调试大量CAN参数的时间(如波特率配置),而使用优先级、信号量、消息队列可以保证在使用CAN时数据不被其他任务数据干扰。