页面加载中,请稍候
来源:单片机与嵌入式系统发布时间:2011-08-1990浏览
询问 AI摘要:为使传感器可即插即用于CAN的测控系统,以混合信号微处理器C8051F041为核心,构建可嵌入传感器的智能转换接口,将传感器输出信息转换为CAN总线上的报文信息;针对大多数模拟传感器输出信号较弱的特点,C8051F041结合AD623等模拟电路对传感器信号进行必要的滤波、程控放大、零点校准、A/D变换,并由其内部集成的CAN控制器转换为CAN报文信息,通过外接的CAN驱动器CTM8251T最终接入CAN总线;CAN控制器使该传感器成为一个CAN节点,通过定义CAN应用层协议,使传感器插入后立即以较低优先级传送传感器电子数据表单,接收必要的参数设定,从而实现传感器即插即用。
关键词:CAN智能接口;CAN通信协议;C8051F041;CAN控制器;CAN收发器
引言
测控系统离不开传感器。由于各种传感器的工作原理不同,其最终输出的电量形式各不相同。即使同一类传感器,其灵敏度、测量范围不同,相同电信号代表的物理量也不尽相同。因此,传统的测控系统,必须对系统中的每一个传感器进行配置,传感器类型、灵敏度、测量范围等的细微改变都将导致系统(主要是软件和部分硬件)的重新设置。若要增/减传感器,以改变测控系统的规模,则需对整个系统(软件、硬件及布线)。进行重新配置。这无疑极大地限制了测控系统的灵活性,制约了测控系统的扩展性。CAN的通信硬件接口简单,通信线少,通信介质可以为双绞线、同轴电缆或者光缆。将测控系统配置为CAN总线结构,将目前广泛应用的各种模拟传感器,配以CAN总线接口,使之成为CAN总线上的一个智能节点,即易于实现传感器的即插即用,也提高了测控系统的灵活性和可扩展性。
1 传感器/CAN智能接口系统构成
传感器/CAN智能接口的作用主要有两点:一是控制传感器的信号调理,将传感器的输出模拟信号转换为数字量,并进行相应的处理,形成可发送的CAN报文信息;二是控制CAN驱动器,收/发 CAN总线上的报文信息,并执行相应的智能控制。智能接口系统构成如图1所示。
针对大多数模拟传感器输出信号较弱的特点,接口首先对传感器信号进行一级放大和滤波的预处理,预处理后的传感器信号幅度在200 mV左右,单端输出。此后对该信号的处理完全由基于SOC技术的混合信号微处理器C8051F041自动完成,如信号的程控放大、信号的零点校准、信号的A/D变换、信号的数字滤波以及CAN报文的形成和收发控制等;C8051F041是该接口的核心,它不仅完成传感器信号到CAN报文的转换;更通过对传感器信号调理的智能控制和对CAN应用层的编程,实现传感器的即插即用。
2 传感器信号调理
考虑到绝大多数传感器信号较弱,且包含大量的噪声信号,因此需首先对传感器输出的模拟信号进行必要的调理,信号调理由信号预处理电路结合S0c中的模拟外设实现,如图2所示。在此,信号调理主要对传感器信号进行了必要的滤波、放大和零点校准。
2.1 传感器信号的滤波处理
考虑到日益恶劣的电磁干扰环境,对传感器信号的滤波分两级实现:终级为利用SoC中的高速MCU对采集的信号进行数字滤波(不在此讨论);初级则是由信号预处理电路中R1、R2、C1、C2、C3,组成抗射频干扰滤波器来实现,如图2所示。当不考虑C3时,R1、C1和R2、C2就构成了传感器两输出端至仪用放大器两输入端之间的两低通滤波器,时间常数t1=R1·C1;t2=R2·C2。由于无论是传感器至AD623之间的自然连线等效形成的t1和t2,还是人为设计的低通滤波器的t1和t2,都不能使RC完全匹配相等,即t1≠t2;△t=t1-t2≠0。这样耦合到两根连线上的干扰电磁波,即使是同频、同相位、同幅值的共模信号,进入AD623进行放大时也必然出现相位差,并由此导致两输入端之间的幅值差。当干扰信号频率较低时,由于△t相对干扰信号的周期较小,造成的两输入端之间的幅值差,相对共模部分很小,利用AD623的共模抑制能力,能对干扰信号进行较好地抑制(共模部分被抑制,差分部分影响较小);但当干扰信号频率较高时,则△t相对干扰信号的周期较大,极端情况如两路信号相位差180°时,则同频、同相位、同幅值的共模干扰信号,进入AD623时被合成为两倍幅值的同频差分信号,该差分信号不仅不能被抑制,还被放大器放大,即被混叠到有效信号中,难以消除。为此,在两低通滤波器之间跨接了电容C3,这样该滤波器的差分带宽为:
为实现传感器的即插即用,需对收发的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总线的各种技术优势。再通过设计一套比较完备的应用层协议,最终实现了传感器的即插即用。
新闻来源:单片机与嵌入式系统,文中所述为作者独立观点,不代表icspec立场。更多精彩资讯请下载icspec App。如对本稿件有异议,请联系微信客服specltkj。
暂无评论哦,快来评论一下吧!

2026-06-02

2026-06-04
2026-07-04