CAN总线是由德国BOSCH公司提出的,它是一种多主总线系统,通讯介质可以是双绞线、同轴电缆或光纤,其通讯速率可达1Mbps,最远通讯距离可达10km。CAN总线具有较高的性能价格比,CAN总线有如下主要特点:
1、每帧数据都有CRC校验及其他检错措施,保证了数据传输的高可靠性,适于在高干扰环境下使用;
2、节点在错误严重的情况下,具有自动关闭总线的功能,切断它与总线的联系,以使总线上其他操作不受影响;
3、废除传统的站地址编码,代之以对通信数据块进行编码,可以多主方式工作;
4、采用非破坏性仲裁技术,当2个节点同时向网络上传送数据时,优先级低的节点主动停止数据发送,而优先级高的节点可不受影响继续传输数据,有效避免了总线冲突;
5、采用短帧结构,每一帧的有效字节数为8个,数据传输时间短,受干扰的概率低,重新发送的时间短;
6、可以点对点,一对多及广播集中方式传送和接收数据。
一
、现场总线执行器的工作原理 电动执行器由
电动执行机构和调节机构2部分组成。电动
执行机构主要由控制电路、驱动电机、减速机构和反馈装置构成。控制电路首先接收通过现场总线传递来的被控参数的给定值和由测量变送装置送到的被控参数的测量值,并根据选定的控制规律进行运算,输出相应的阀位值。同时,在电动执行器内部,再与由反馈装置测量的实际阀位值进行比较,并进行运算,然后控制电动机的转动。驱动电动机采用直流或交流电动机。
由现场总线智能电动执行器的工作原理可知,在该系统中包括控制电路、阀位检测、APD转换、电机及其驱动、CAN通讯、功能设置面板和显示。系统如图1所示。

图1 现场总线智能执行器的组成框图
二
、硬件电路各部分设计
(1)主控制器的选择
目前新型的高性能微控制器MC9S12DJ128带有CAN总线通信接口,可方便地实现CAN总线的通信协议。MC9S12DJ128具有丰富的功能模块,接口非常方便,运算速度快,编程效率高,对C语言编程支持较好,而且功耗低,抗干扰能力强,适合恶劣的工作环境。支持背景调试模式,开发成本低,具有丰富的指令系统,可以非常方便地构成FCS系统的现场级控制器,系统选用MC9S12DJ128作为主控芯片。
(2)APD转换电路
MAX1416实现由模拟量到数字量的转换。MAX1416是由MAX公司生产的低功耗、2通道、串行输出的16位Σ-Δ模拟数字
转换器。系统具有2个全差分输入通道,能达到010015%非线性的无误码数据输出,外部模拟输入缓冲器,可编程增益放大器,4175~5125V的电源,低功耗,与三线串口兼容,极大地提高了系统的转换精度。
(3)电机驱动电路
采用固态继电器AC-SSR作为电子开关实现电动机的可逆运转控制,取代了传统利用伺服放大器用模拟控制模拟的老套路,解决了使用寿命有限和触点抖动的问题。图2为电动机控制原理图。

图2 电动机的控制原理图
两个端口分别来控制SSR1和SSR2的通断,以控制电机的正反转。M为单向交流电动机,RC串联组成外加吸收电路,RV压敏电阻起过电压保护作用。由电路中电容C回路的工作特点可知,当AC-SSR1或AC-SSR2中任何一个关断时,关断SSR输出端的电压约为交流电源电压的2倍。因此在选用SSR额定电压时,应大于电源电压的2倍,换向时间也必须有30ms以上的延时。
(4)CAN通讯电路
本设计中的CAN模块主要是利用了微控制本身集成的MSCAN模块配以CAN总线收发驱动器件PCA82C250,来实现与上位机和其他节点的通讯功能。MSCAN服从CAN2.0APB协议,集成了除收发器外CAN总线控制器的所有功能。内置MSCAN模块由收发引擎、报文过滤与收发缓冲、控制与状态管理、时钟和低通滤波器等组成。MSCAN的输入RxCAN、输出TxCAN通过CAN收发器连接到传输介质。
MSCAN控制器要通过总线驱动器和CAN总线相连。PCA82C250是CAN控制器与物理总线之间的接口,器件可以提供对总线的差动发送和接收功能。82C250驱动电路内部具有限流电路,可防止发送输出级对电源、地或负载短路。若结温超过大约160℃时,则2个发送器输出端的极限电流将减小,由于发送器是功耗的主要部分,因而限制了芯片的温升。使用时将82C250的Rs脚通过一个精密可调电阻接地,其取值决定收发器的工作方式。
在82C250的CANH和CANL引脚各自通过一个电阻与CAN总线相连,电阻可以起到一定的限流作用,保护82C250免受过流的冲击。CANH和CANL与地之间接的电容可以起到滤除总线上的高频干扰和一定的防电磁辐射的作用。通过82C250与物理总线进行连接,可使总线支持多达110个节点。另外,为了增强CAN总线节点的抗干扰能力,微控制器的TXCAN和RXCAN并不直接与82C250的TXD和RXD相连,而是通过高速光耦6N137后相连,这样可以实现总线上各CAN节点间的电气隔离。图3所示为CAN模块电路图。

图3 CAN模块电路图
(5)显示模块
为了缩短开发周期,选用了现成的LCD显示模块进行集成。LCD模块根据来自中央处理单元的信号,能够以不同的形式显示数字输出。
三、软件设计
整个系统的功能模块有:系统初始化模块、控制运算模块、显示子程序模块等,每个模块编制相应的子程序。主控程序流程如图4所示。

图4 主程序流程图
初始化模块包括CPU内部堆栈区初始化、CPU运行模式初始化、临时变量初始化、堆栈指针的设置、时间计数器的设置、中断优先级的设置及中断矢量的配置、输入输出端口的设置,APD转换器初始化、液晶显示器初始化、CAN总线控制器初始化。
控制运算模块实现的是对过程变量进行采样,数据处理以及根据采用的算法和控制方式进行计算和输出等。由于电动机的惯性,位置反馈信号的滞后等原因,在控制算法中采用了微控制器自身所带的模糊函数进行运算来实现对电机转速较为精确的控制。系统采用串级PID控制和数字滤波等手段,快速消除系统干扰所带来的影响,较好地满足了系统的控制要求。对于不同控制系统对
调节阀流量特性的要求,通过软件程序的编制实现了不同流量特性的修正。在软件程序中减小了控制器的死区和静差,可避免对系统带来的不利影响。
显示子程序包括字母显示和数字显示2部分。显示控制器HD44780内部的字符集采用ASCII码制,需要先对数据进行二进制到ASCII码的转换。然后根据需要送相应的功能码,确定显示位置,再把待显示的数据和字符的ASCII码送往液晶显示模块的数据存储器。另外软件程序部分还包括报警指示、对系统的掉电保护、执行中断服务子程序和系统自诊断等。