厦门莫格电气自动化有限公司销售
Honeywell霍尼韦尔TC-PCIC01
欢迎来电咨询!
TC-PCIC01
TC-PCIC01
TC-PCIC01
您迈开询价的一小步,我还您成功的一大步。
板级支持包是指在单板上实现全部基础功能,例如时钟管理、掉电备份、串口、CAN总线通信、A/D采样以及显示任务的f***c接口、驱动优盘的SPI接口等。利用ST公司提供的标准化库函数,调用库函数进行初始化,配置模块参数,在使用时根据需要调用函数或在中断进行,完成后封装成一个Lib库文件使用。
在系统中断里设置:①CAN中断,用于快速反映CAN口信息;②USART接收中断,用于接收串口信息;③RTC中断,用于实时时钟中断;④USB有两个中断,用于USB端口的收发设置。板级支持包的函数如图5所示。
全系统的参数如下:A/D总线模块采样率为1 kHz,***高为5 kHz,通道数8个,可以拓展到16通道。串口速率为115 200,数据位为8位,无校验。CAN用CAN-1口,设置为500 kbps、250 kbps、100kbps、50 kbps的4档速率,扩展ID形式。
初始化单板需进行时钟校正,存储正确的时间。单板掉电之后用电池工作,存入备份寄存器,上电再取时间参数(即秒的数量),换算成对应的日期和时间。显示模块采用F***C并行接口控制,实现在屏幕上画出单个点、单条直线等基本绘图功能,就能提供接口给μC总线GUI使用。
2.3 CAN总线通信协议
本设计采用CAN总线协议,用状态机进行状态转换,在具体的指令驱动下实现从握手到传输数据的过程。图6是CAN总线通信的状态机。
CAN总线通信指令是英文单词缩写用ASCII码表示的结果。在本设计中,有一个主节点和3个从节点。主节点和从节点对应的指令应答方式如图7所示。初始化时,主节点在发出“TEST”指令后,从节点回复“ALOK”,表示从节点收到指令,工作正常。1号和2号从节点负责测量温度、湿度和压力。主节点发送“NEED”指令,从节点1号和2号回复温度、湿度数值给主节点,格式是对应的“指令+数据”。主节点根据ID与指令,判断数据正确性,及时显示在屏幕上。
采样时,主节点在指令的驱动下,切换不同状态。主节点发送预备指令,确认从节点准备好之后,再发出采样开始的“***PL”命令,从节点收到指令后,启动采样,完成后回复“GOGO”指令。从节点在采样结束后再回复,是为了减少采样启动的***。主节点进入接收数据的状态,发送传输数据指令“DATA”,从节点先用“LENS”指令告诉主节点,本次采样长度是多少,便于主节点在接收数据的时候统计,是否接收到了数量正确的数据。从节点开始发送数据,***后发送“ENDD”指令,告诉主节点数据传送结束。主节点的数据标识清空,回到初始状态。这样完成了一轮数据采样、发送过程。
2.4 μC/OS嵌入式操作系统
首先,已经将板级支持包编写完毕,而嵌入式系统首先是单板运行,其次是将底层软件用任务的方式重新编写。在单板运行嵌入式系统就是移植的过程,主要有:
①定义常量的值,声明数据类型、堆栈参数;
②编写堆栈初始化参数;
③编写任务切换的函数,还有在中断函数中提供时钟中断,即给操作系统时钟使用。
移植完成之后,进行任务的编写。分配给7个任务不同的优先级、堆栈资源和运行方式。其中,App_TaskStart是全部任务的起始点,优先级***高,由这个任务来建立其他任务,并且启动统计任务。App_TaskCreate建立了其他所有的任务。AppTaskUSerIF任务实现用户界面,Task_CAN任务实现CAN报文接收,Task_FatFileWR任务实现FatFs文件读写,AppTaskKbd任务实现触摸驱动,Clock_Update任务实现秒更新。
任务的周期性启动在建立任务时确定,例如AppTaskUserIF任务始终在运行,采用WM_Exec函数做界面更新。AppTaskKbd是10 ms周期读取触摸坐标,实现绘制鼠标箭头和触控功能。
信号量是在所有任务建立之前建立。CAN_MBOX是采用O***boxCreate建立的邮箱信号量,能够传送CAN接收中断的消息以启动CAN任务,FLAGRECORD是OSFlagCreate建立的多值信号量,能置位4位,启动文件读写任务。ClocK_SEM是OSSemCreate建立的二值信号量,专门用于秒更新中断的信号量。
CAN_MBOX=O***boxCreate((void*)0);
//建立CAN接收任务的消息邮箱
FLAGRECORD=OSFlagCreate(0,err);
//建立记录文件的开关量
Clock_SEM=OSSemCreate(1);
//建立秒更新中断的信号量
在运行μC/OS之后,还可以在os_cfg.h函数中关闭OS不需要的功能模块,以达到裁减系统、节约内存空间的目的