新闻  |   论坛  |   博客  |   在线研讨会
AMT的软硬件协同设计
綦声波 | 2011-03-15 20:56:55    阅读:14222   发布文章

1. AMT的软/硬件协同设计

随着嵌入式软/硬件系统的复杂程度越来越高,传统的软/硬件独立开发设计的弊端逐渐成为产品开发中的瓶颈。当前大规模集成电路的迅速发展,触发了人们对软/硬件协同设计(SW-HW Co-Design)的强烈需求。现在已经能够在单一硅片上集成MCUMPU、模拟与数字混合电路,从而构成一个完整的系统,这就是片上系统SOCSystem On Chip[6]。可编程片上系统SOPC(System On Programmable Chip),是基于大规模FPGA的单片系统,它将系统构建的灵活性和自主权留给用户,通过软/硬件协同设计,可以在单芯片上实现单个或多个“微处理器核”及各种IP构成的应用系统,既稳定可靠、实时性强,又设计灵活多样、可变性强,是现代嵌入式系统设计的必然趋势和重要途径。

AMT系统是在传统手动固定轴式变速器和干式离合器的基础上,由换挡控制单元TCU采集相关传感器信号,应用自动变速理论,控制离合器执行机构、选/换挡执行机构及发动机输出功率,实现车辆起步和自动换挡。由此可见,换挡控制单元TCU是整个电控系统的核心,其设计思路及性能优劣往往决定了AMT的主要性能指标[7]。在TCUSOPC设计中,软硬件的界限开始模糊,若干功能模块既可以由硬件实现,又可以由软件实现,这也正是SOPC的优势所在。例如速度信号的处理,在传统的嵌入式开发中,这毫无疑问是个软件问题,往往需要中断来处理该信号。当速度脉冲频率较高时,软件中断和计算工作量很大,会给CPU带来较大负担,从而影响了整体软件的处理速度。但在SOPC的处理中,则可以编制一个硬件模块来专门处理速度,软件的功能就相对简单,只需要处理好接口时序并在需要的时候读取速度就可以了,CPU的负担大大降低,整个控制系统更加可靠。

以下将从TCU的外部硬件功能分析开始,根据由外到内的顺序构建基于SOPCTCU软硬件协同设计架构。

1.1. TCU硬件功能分析

1为本文涉及到的AMT控制系统示意图。与TCU的设计相关的硬件大体可分为人机界面相关部分、执行机构相关部分、CAN总线相关部分、安全处理相关部分。

图1 AMT控制系统示意图

1.1.1. 人机界面相关部分

在车辆的行驶中,TCU一方面要接收用户的各种指令,例如驾驶模式选择(自动/半自动,城市模式等等)、操纵手柄、刹车等信息,同时要将当前车辆的挡位信息、车辆的工作模式通过显示器进行显示,并对驾驶员的不正确操作或其他各种警示情况通过蜂鸣器和显示器进行提醒。

1.1.2. 执行机构相关部分

在本系统中,TCU直接控制的执行机构有换挡执行结构、选档执行机构和离合器执行结构三大部分。AMT的执行机构有液压、气动和电动的区别,此处的执行机构为电动型。TCU通过离合器位置传感器、选档位置传感器、换挡位置传感器以及离合器速度传感器来感知当前的执行机构位置或指令的执行情况,从而构成闭环控制系统。

1.1.3. CAN总线相关部分

CAN总线在汽车上广泛应用。在本例中的AMT控制系统中,CAN总线起到了举足轻重的地位。一方面,TCU通过CAN总线共享发动机的相关信息,例如发动机转速,节气门开度等,另一方面,TCU通过协议请求,在换挡过程中的特定时刻实现发动机转矩控制,从而减小换挡冲击度,实现顺利换挡。

1.1.4. 安全处理相关部分

从车辆上电、打火、换挡、行驶到最后的熄火停车,安全问题始终伴随。对于AMT来说,安全问题包括两个方面,一方面是AMT本身的安全问题,例如要时刻监视执行电机的工作电流,根据电流反馈情况决定下一步采取的措施,避免出现电机烧毁情况;另一方面是与车辆相关的安全问题。例如,空挡之外,不允许系统点火,从而规避潜在的危险。

1.2. FPGA选择与TCU的硬件设计

SOPC/硬件协同设计与具体的FPGA器件密切相关,本论文中的TCU设计选用了Altera的开发平台,FPGA芯片为Cyclone III系列。Altera公司提供了包括Cyclone III FPGA在内的汽车级产品线,Cyclone III 器件性价比高,其内部可以根据需要嵌入单个或多个Nios II软核处理器和多种IP。另外,Altera公司在其开发工具QuartusⅡ中集成了SOPC Builder工具,不需要直接编写HDL代码来定义系统,极大地节约了设计开发时间,开发方便。

基于SOPCTCU硬件设计分为两步:第一步,与普通的嵌入式系统设计一样,实现FPGA与外部芯片和电路的正确连接,此时的FPGA仅仅是硬件系统的一个主要芯片而已;第二步,在Quartus IISOPC Bulider工具中构建FPGA内部包括Nios II软核在内的IP模块,通过Avalon总线连接,使FPGA在硬件逻辑上成为整个系统的控制核心。图2为基于SOPC构建的TCU硬件示意图。

图2  TCU硬件示意图

FPGA内部,构建SOPCIP来自三个途径:EDA厂商提供,用户自己定义,第三方提供[8]。在图2所示的IP中,除了CAN_CTRL模块(完成类似SJA1000协议控制器的功能)移植自opencores网站提供的开源CAN[9]外,其他的IP模块,要么直接利用SOPC Builder厂商提供的模块,要么需要用VHDLVerilog HDL等硬件描述语言编写相应IP模块,并导入到SOPC Builder的用户IP库中进行调用。例如SPEED_CALADC_CTRLDAC_CTRLPWM_CTRLSENSOR_CTRL等模块都是用这种方式生成的。

SOPC的运行需要扩展FPGA的外围支持电路,包括一些集成芯片和调理电路。芯片包括串行接口A/D转换器TLV2556,串行接口D/A转换器LTC2622CAN收发器ATA6660RS232电平转换器MAX232等。芯片LIS35DE为三维加速度传感器,以测量实车实验时的换挡冲击度。为了SOPC系统的正常运行,还需要外接一些必要的部件,如在线调试用JTAG接口、串行配置芯片EPCS16、程序运行用RAM等,这些部件在FPGA内都有相应的IP模块对应。另外,还需要添加运行必须的其他外设,譬如定时器、片上RAM等。

1.3.  SOPC开发过程

如图3所示,SOPC的开发过程分为硬件构建和软件开发两部分。硬件构建在QUARTUS IISOPC Builder中完成,软件的开发工作在Nios II IDE环境中完成。使用SOPC Builder生成系统后,可以直接使用Nios II IDE开始设计C/C++应用程序代码。Altera提供外设驱动程序和硬件抽象层HAL(Hardware Abstraction Layer),使用户能够快速编写与低级硬件细节无关的Nios II程序。即使在没有软件开发的目标板的情况下,也可以经过编译、连接后通过Nios II指令仿真器(ISS)运行和调试代码。

图3 SOPC的开发过程

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客