陈家雨
(南京理工大学 江苏 南京210000)
车用控制器数字量端口的可配置的实现
陈家雨
(南京理工大学 江苏 南京210000)
提出了一种基于MK66FX1M0VLQ18(主控芯片)和EMP570T114C5N(CPLD)的实现车用控制器数字量端口可配置性的设计方案。介绍了端口进行数字量输出时故障诊断电路原理以及软件实现方案。从CPLD和主控芯片角度分别介绍数字量端口功能可配置的实现过程,从而使所设计的车用控制器具备高度灵活的可配置。同时由于采用CPLD实现数字量端口的复用功能,降低了系统的主控芯片的负荷,提高了整个车用控制器工作效率。
车用控制器;数字量;端口扩展;可配置;CPLD
汽车工业中一个明显的趋势是车辆上的电子装备越来越多,并且扮演着重要的角色,其本身占汽车整体成本也在不断上升[1]。我们设计了一个面向于工程机械和移动车辆的通用的车用控制器。该控制器的特点在于具有高度灵活的可配型以及可以进行远程操作,比如远程更新程序,还要求控制器端口具有进行端口保护和自诊断功能,以及通过串口和CAN总线进行通信等功能。
为了满足通用的车用控制器的主要性能要求,在所设计控制器中,采用的主控芯片为freescale公司的MK66FX1M0VLQ18,内核为Cortex-M4。主要参数[2]包括:最高180M主频,满足控制器的速度要求;144管脚,管脚资源紧张,需要外部芯片进行扩展;1M FLASH,256K RAM,4K EEPROM 的存储单元,满足控制器主要计算以及处理过程中的存储要求,但是在实现扩展功能时需要进行存储设备的扩展;6个UART,2个CAN,足以满足控制器的通信要求。
鉴于MK66FX1M0VLQ18有限的IO资源,我们对主控芯片进行了端口扩展。扩展芯片采用的是Altera公司的复杂可编程逻辑器件(CPLD)EMP570T114C5N。该芯片具有144根管脚,宏单元数为440,逻辑元件/逻辑块数目为570,足以满足端口的扩展要求[3]。
在所设计的控制器中,保留74个可配置端口[4],包括:开关量端口48个以及模拟量输入端口26路。所有端口均可作为数字量输入。每个数字量端口都具备开路/短路故障检测以及短路保护。
其中开关量端口有48个,具体包括:
8路低边开关量输出,最大电流3 A,可选择配置为开关量输入或开关量输出(3 A),PWM输出。4路低边大开关量输出,最大电流8 A,可选择配置为开关量输入或大电流低边开关输出 (8 A),H桥低边PWM输出。32路高边开关输出,最大电流3 A,可选择配置为开关量输入或开关量输出 (3 A),PWM输出。4路高边大开关量输出,最大电流8 A,可选择配置为大电流高边开关输出(8 A)或H桥高边PWM输出。
目前的CPLD主要是基于EPROM或FLASH存储器编程,相比较主要基于SRAM编程的FPGA,优势在于系统掉电后编程信息不会丢失,无需外部存储器芯片,使用简单。由于控制器的速度要求,CPLD比起FPGA更具有速度上优势。又考虑到CPLD是“逻辑丰富”型的,比起“时序丰富”型的FPGA更适用于完成各种算法和组合逻辑,适用于设计译码等复杂组合逻辑[5]。综合考虑之下,为了节约主控芯片有限的管脚和资源,采用CPLD来实现数字量端口的可配置性,以及包括数字量输出故障诊断在内的的各个功能模块,从而完成对主控芯片的扩展。
基于CPLD的车用控制器数字量端口扩展和故障诊断结构如图1所示。
图1 基于CPLD的数字量端口扩展和故障诊断结构图
这些数字量端口故障诊断电路的核心部分完全相同。根据所驱动的负载,端口的输出可以分为4类[6]:8路低边开关量输出,4路低边大开关量输出,32路高边开关输出,4路高边大开关量输出。每一类负载的输出分别具有完全相同的负载驱动电路。控制总线包括[7]:地址锁存信号ALE,片选信号CS,使能信号EN,以及读写控制信号WR。地址数据复用总线是一个双向总线。地址数据复用总线复用为地址功能时,实现数字量端口号的选择以及端口的功能配置。复用为数据总线时,可以用于传递主控芯片控制输出端口的输出数据,也可以作为端口反馈到主控芯片的故障诊断信息,或者反馈的端口读取的数字量输入数据。诊断完成信号和输入完成信号是CPLD单方向向主控芯片发送的提醒信息。
端口作为数字量输出功能时,端口的开路和短路故障诊断原理图如图2所示[8]。
图2 数字量输出端口故障诊断原理图
在上图中的故障诊断电路中,在负载开路,正常负载,负载短路不同情况下,由于电容充放电的电路不同,导致速率不同,从而通过观察电容充放电时间得到故障诊断结果[9]。考虑到电容的效应,为了保证诊断电路正常有效工作,在1 kHz以下脉冲输出时才能进行正常检测。本诊断电路对于负载电阻大于100K以及容性负载无效[10],对于感性负载全有效。根据车用控制器的负载进行分析[11],负载可以近似为小于100 Ω。在正常负载和发生故障情况下,电容充放电情况如图3所示,横坐标表示时间,纵坐标表示电容的电压。
图3 不同情况下电容充放电情况电情况
CPLD的端口数字量输出故障诊断部分软件实现流程图如图4所示。
图4 端口数字量输出自诊断流程图
CPLD部分实现端口可配置性及数字量输出端口故障诊断时内部结构图如图5所示。
地址数据复用双向总线承担地址线功能时,地址锁存模块对其传输来的地址进行锁存,并且通过地址译码器对锁存的地址进行译码得到的功能和端口选择信号。
当实现输入功能时[12],CPLD接收来自主控芯片发送来的地址以及读写控制信号WR,译码后使能DI输入模块并选通对应的DI对应管脚。在读取并获得该管脚对应的端口数据之后,反馈该数据到地址数据复用总线上 (此时总线作为数据线)。同时,CPLD向主控芯片发送数字量输入完成信号通知主控芯片读取数据。
图5 端口可配置及输出端口故障诊断的CPLD内部结构图
在实现输出PWM波功能时[13],根据译码后的地址以及读写控制信号,选择对应的PWM生成模块以及选通DO驱动模块的对应DO管脚,使PWM输出通过该DO管脚输出到对应端口。地址数据复用总线作为数据线传递数据到PWM模块,使得PWM模块生成对应频率的波形,最终该端口输出的是设置的PWM波形。
在实现普通DO输出功能时,根据译码后的地址选通DO驱动模块对应的DO管脚以及选通该管脚的故障诊断模块,并把地址数据复用总线传输来的数据通过该管脚输出。对每个输出管脚的输出电压进行检测,每当检测到电压跳变时,使能故障诊断模块。并在诊断结束后,向地址数据复用总线反馈诊断端口号以及诊断结果,同时向主控芯片反馈完成信号,通知主控芯片读取诊断结果。
通过CPLD实现端口的诊断以及PWM功能,有效地减轻主控芯片的负荷,提高控制器整个系统的工作效率。
在硬件上,通过K66的GPIO口来模拟地址数据复用总线功能的实现。由图4可知,需要地址数据复用总线8根,控制线4根,诊断完成信号线1根,读取输入信号完成线1根。一共需要预留主控制器14个GPIO口。主控芯片GPIO口分配如表1所示。
在软件上,由于在端口复用为数字量输出功能时,可能会需要进行故障诊断,而故障诊断需要一定的延时时间(诊断时间),为了提高主控芯片CPU的利用率,提高控制器的工作效率,采用中断方式来读取诊断信息[14]。所以在配置为数字量输出功能时,启动端口中断。而一旦进入中断服务程序,则关闭该端口中断,防止在执行其他功能时误触发该端口中断。当诊断完成后,CPLD向主控芯片发送诊断完成信号时,会触发主控芯片端口中断,主控芯片进入中断服务程序,读取地址数据复用总线上的诊断信息。
而在端口复用为数字量输入时,由于时间极短,所以主控芯片采用查询方式获取数字量输入的数据,从而避免频繁的进入中断,减少不要的开销[15]。作为PWM输出时,不需要反馈数据到主控芯片。主控芯片部分实现控制器端口扩展和功能可配置性的工作流程图如图6所示。
地址数据复用双向总线是通过8个GPIO实现的:PTC8、PTC9、PTC10、PTD2、PTD3、PTD4、PTD5、PTD6。这8根管脚分时复用时对应的功能分别如表2所示。
图6 主控芯片实现端口扩展和可配置性流程图
表1 GPIO分配管脚及功能
表2 地址数据双向总线与GPIO管脚对应关系表
当这8根GPIO管脚作为地址线时实现的功能是端口选择和该端口的功能配置,即可视为端口配置寄存器Addr[7:0],依次对应于地址线[7:0]。
因为数字量端口号只有48个,所以只需要6位数据即可表示这些端口,可配置功能功能包括:数字量输出,数字量输入,PWM输出,2位数据足以表示完这些功能。综合考虑之下,Addr[7:2]表示对应的端口号,Addr[1:0]表示端口的功能:00(开关输出),01(开关输入),10(PWM输出)。数字量端口配置寄存器的值与对应的功能如表3所示。
文中设计的数字量端口扩展和功能可配置性实现方案应用复杂可编程逻辑器件(CPLD)实现对应的功能模块,扩展了主控芯片有限的IO资源,并且一定程度上降低了主控芯片的负荷。通过测试,数字量输出,数字量输入,PWM输出功能均能正常实现,并且可以通过在主控芯片的程序中设定配置参数进行可配置功能的选择。从而实现控制器具有高度灵活性和通用性,适用于不同车辆和工程器械上,满足不同顾客的需求。
表3 寄存器Addr的值与数字量端口的功能的关系表
[1]张翔,王佳,张长红,等.汽车ECU开发技术研究[J].上海汽车,2008,9:15-16.
[2]于丰华.基于K60的智能汽车控制系统的研究[D].吉林:吉林农业大学,2014.
[3]杨小卫.汽车电子机械制动系统CAN总线通信研究[D].太原:中北大学,2014.
[4]徐伟业,江滨,虞湘宾.CPLD/FPGA的发展与应用比较[J].现代电子技术,2007(2):4-7.
[5]李旭.基于电路仿真原理的故障检测与诊断研究[D].大连:大连理工大学,2007.
[6]骆国庆.基于ARM+CPLD的多电机运动控制器设计[D].宁波:宁波大学,2015.
[7]李坤.基于ARM的嵌入式中断系统的软件仿真实现[D].成都:电子科技大学,2012.
[8]王阳,徐加欢,陈军宁,等.集成微电容式传感器检测电路设计与研究 [J].电子器件,2013(2):230-234.
[9]李向阳.电容充放电脉冲数字控制型电火花沉积电源[D].洛阳:河南科技大学,2013.
[10]檀斐.车用动力锂离子电池系统故障诊断研究与实现[D].北京:北京理工大学,2015.
[11]沈旭.基于FPGA的数字电路故障诊断系统设计及关键技术研究[D].南京:南京航空航天大学,2014.
[12]吴韧,蔡伟义.基于飞思卡尔单片机的车载诊断系统研究[J].机械制造与自动化,2012(3):134-136,155.
[13]孙金泉,金忠,江恒.工程机械电子控制单元电源设计与改进[J].建筑机械化,2015(2):58-59,85.
[14]高泽涵,黄岚.基于模糊模式识别的模拟电路故障诊断方法[J].电子设计工程,2013(20):79-82.
[15]李志刚.煤矿电气设备的绝缘故障及其诊断技术[J].科技传播,2014(17):183-184.
Realization of the ECU digital ports'configurability
CHEN Jia-yu
(Nanjing University of Science and Technology,NanJing 210000,China)
In order to realize the digital ports'configurability of the ECU,we put forward a design based on the main control chip(MK66FX1M0VLQ18) and the extended chip (EMP570T114C5N(CPLD)).In the design,we introduce the way to diagnose the digital ports from the theory and soft-realization.To make the ECU has high flexibility,we show the realization of configurability of the digital ports from the main control chip and the extended chip.Besides because of the usage of the CPLD,we reduce the load of the main control chip and increase the work efficiency of the whole ECU.
ECU; digital;ports-extending; configurability;CPLD
TN70
A
1674-6236(2017)17-0097-05
2016-08-26稿件编号:201608201
陈家雨(1990—),男,江苏泗阳人,硕士研究生。研究方向:嵌入式,车用控制器。