为实现传感器的即插即用,需对收发的CAN报文内容与格式进行一定的约定,即在CAN应用层上制定相应的协议,以保证测控系统的即插即用。
4.1 发送报文的协议
由图3可见,该SoC内嵌的消息RAM可保存32个消息对象。协议将其中的3个消息对象配置为下面介绍的发送消息对象。
4.1.1 发送电子数据表单
传感器初次接人系统时,须首先向主机申请加入——申请从机ID标识。申请办法是:传感器一接入系统,立即发送其第1条消息对象,发送的报文为一数据帧,其仲裁域的ID是系统特别约定的“申请ID”。约定:系统中仅主机对申请ID作出反应,即通过读取该数据帧的8字节数据(该传感器的电子数据表单——TEDs),了解该传感器的类型、特性、编号、物理量纲及数据特征。主机比较/记录该数据项,并根据其TEDs中类型、特性项,结合系统要求,确定其诸如采样方式、采样周期、是否数字滤波、滤波方式、数据区长度等,并分配给其相应的从机“标识ID”和启动A/D转换的“启动ID”。传感器TEDs中的编号项,用于区分系统中类型、特性相同的传感器;物理量纲项,用于告知主机该传感器所传数据的实际物理单位,也表征了该被测物理量数值的实际大小;数据特征项,用于表征所传16位数据的特征(BCD码、二进制整数、二进制小数、小数点位置等)。
申请ID,一般可约定采用CAN系统优先级较低的ID,确定后,系统主机将不再将此ID分配给任何CAN节点。
4.1.2 发送配置/管理申请
传感器可获得主机分配的2个从机标识ID,分别为“标识1ID”和“标识0ID”。用标识1ID配置第2条发送消息对象,该消息对象将成为与主机交互的发送接口,用于向主机申请各种各样的配置/管理要求。但当传感器由于某些原因需要重新接入系统时,仍需用第1条发送消息对象向主机申请加入。
4.1.3 发送数据
由于物理接口方面的原因,目前CAN网络的规模大约在110个节点左右,即使BasiCCAN也有11位的ID标识,所能标识的节点数远超当前所能使用的节点数,只是11位ID的最低3位不参与报文滤波。为此,规定:主机分配给节点的两个从机标识ID,其前10位相同,最低位为1即标识1 ID,用于配置第2条发送消息对象,该消息对象为与主机进行常规交互的发送接口,如上所述;最低位为0即从机标识0ID,用于配置第3条发送消息对象,该消息对象用于上传节点数据。
4.2 接收报文的协议
协议要求配置3个接收消息对象,作用分别为:
①滤波接收用本节点“申请ID”发来的数据帧。传感器接入系统后,首先用申请ID发送传感器电子数据表单,主机用同样的ID回复一数据帧,该数据帧包含有分配给传感器的标识ID、启动ADC的启动ID及对该节点的基本配置要求。CAN控制器配置的第1条接收消息对象,即用来滤波接收该数据帧。
②滤波接收用本节点“标识ID”发来的数据帧。当需要对传感器进一步进行配置管理时,用第2条发送消息对象,向主机发送配置/管理申请,主机将使用相同的ID(该从机的标识ID),回复对其的配置/管理指令(位于该报文数据域)。为此,需配置第2条接收消息对象,滤波接收用本从机标识ID发送的数据帧。
③滤波接收用本节点“启动ID”发来的数据帧。用启动ID配置第3条接收消息对象,即该消息对象能实现对该“启动ID”的滤波。
结语
基于SOC技术的C8051F041的使用,极大地简化了系统构成,最大限度地减小了接口板的尺寸,使其更易于嵌入传感器中。由MCU控制的信号调理、零点校准及信息的定标转换,使传感器成为CAN总线上的一个智能节点,从而可充分利用CAN总线的各种技术优势。再通过设计一套比较完备的应用层协议,最终实现了传感器的即插即用。