对于每个悬浮点,需要监控的参数一般包括电流、间隙、加速度以及其他一些中间参数等。根据不同的控制算法,监控的参数个数也不一样。监控节点的任务就是向其中的某个悬浮节点发出发送允许命令,该悬浮节点在接收到这个命令后,就定时地将传感器和控制器当前的参数打包发送到CAN总线上,然后再由监控节点监听这个节点发送的数据,并在显示屏上将接收到的参数显示出来。长时间接收还可以将某些参数,如电流和间隙,以曲线的形式描绘出来,用于对悬浮控制算法的评估。如果需要对当前被监控的控制器的某些参数进行修改,也可以通过CAN监控终端的人机接口向目标节点发送修改命令。
在实现上,CAN监控终端的主控芯片选用TI公司的TMS320LF2407A型DSP。该DSP除了具备片内资源丰富、运算速度快、成本低、功耗小等特点外,还具备片上CAN模块,使用方便。数据输出用1块240×128的LCD液晶屏来实现,可以把各个参数变化的趋势用曲线描绘出来,灵活性好。用户输入采用行列扫描式键盘,使硬件实现和软件编程均比较方便。
2 硬件设计
系统的硬件组成框图如图2所示。从图中可以看出,TMS320LF2407A DSP是整个电路的核心部件。它是面向实时控制的高性能16位定点DSP,具有32K字的片内Flash程序存储器和2.5K字的片内RAM,运算速度可以达到40MIPS,并带有片上串行通信接口和CAN通信接口等。这些特点为CAN监控终端的设计和实现带来了很大便利。在硬件实现上,考虑到系统对体积和功耗的要求,将所有的DSP程序和LCD的字库均通过JTAG口直接烧写在DSP的片内Flash中,通电后程序即可直接在片内Flash中运行。DSP的晶振频率选择6MHz,通过DSP片内的PLL锁相环4倍频后使DSP的工作主频达到24MHz。
由于DSP片内备有CAN控制器模块,因此,监控终端的CAN模块设计很简单,只需在DSP的CANTX和CANRX引脚上接1个CAN驱动芯片即可。这里选用的CAN驱动芯片是PCA82C250。
DSP的供电电压为3.3V,而外围芯片基本上都是5V,如果将它们直接相连必然会导致电平冲突。解决的办法是:在DSP的数据总线和外围接口总线之间用1片LVC4245作为双向缓冲器。在进行数据交换时,DSP的R/W信号控制着LVC4245的数据流向。
LCD选用240×128点阵的SMG240128A单色液晶屏。它的显示有效面积比较大,适合于显示曲线等信息,底层驱动的编写也比较容易。LCD与DSP的接口采用模拟口线方式,即用2片74HC573分别锁存数据总线和控制总线的数据,模拟LCD的驱动时序。LCD的几个状态位直接由DSP的I/O引脚读入。
键盘由0~9、A~F、以及SHIFT和ENTER共18个键组成,因此在硬件设计上采用5×4的行列扫描方式:即由74HC573提供5个输出行线,由74HC244提供4个列输入,由DSP提供行列扫描时序。考虑到电平匹配问题,74HC573和74HC244与DSP数据总线之间的连接也是通过LVC4245缓冲。
LCD和键盘接口的74HC573以及74HC244芯片均由1片GAL通过对DSP的地址总线进行译码实现选通,其电路简单,灵活性好。
出于便携式的要求,系统采用电池供电方式。这里采用5节可充电5号电池作为电源,正常供电电压为5~7V,正好符合电源芯片TPS7350的供电要求。由于系统内需要3.3V和5V二种供电电源,故这里选用1片低压差芯片TPS7350作为5V电源的供电芯片,用另一片低压差芯片TPS7333作为3.3V电源的供电芯片。为防止电池电量不足时导致意外停机事故,这里还采用1片LM311构建了一个电池电量报警电路,以便在电池电压低于安全电压时点亮LED报警提示。为了操作方便,所有的硬件电路以及电池等均安装在一个便携的塑料外壳中。