摘 要: 提出了采用异构多处理器体系结构构建嵌入式计算平台的思想,并基于该思想采用Cortex M3主处理器和MSP430协处理器构建了异构多处理器体系结构的433 MHz有源RFID读写机具。实际验证结果表明,采用异构多处理器构建的嵌入式计算平台实现了计算密集型应用与控制密集型应用的有效分离,大大提高了系统的灵活性和资源分配的合理性。基于该体系结构重构传统嵌入式计算平台时对应用系统透明,使其具有广泛的应用前景。
关键词: 异构多处理器;嵌入式计算平台;RFID读写机具;Cortex-M3;MSP430
嵌入式计算平台是以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统[1]。随着应用需求的发展和嵌入式系统的不断完善,业务应用对嵌入式计算平台在性能、灵活性、功耗和成本等方面提出了更高的需求[2]。在桌面计算和商用服务器计算领域,参考文献[3]指出了采用降低处理器主频并增加处理器个数的方式,成为业界延续摩尔定律的主要手段。为了满足业界对嵌入式计算平台的更高要求,采用多处理器构建嵌入式系统成为业界的主要研究热点[2]。多处理器的组织方式包括同构多处理器组织方式和异构多处理器组织方式。研究表明,在嵌入式计算平台领域,将结构、功能、功耗和运算性能各不相同的多个处理器集成在计算平台中,并通过任务分工和划分将不同的任务分配给不同的核心,让每个核心处理自己擅长的任务时,采用异构多处理器的组织方式比采用同构的多核处理器执行任务更加高效,实现了资源的最佳配置,并且降低了嵌入式计算平台的整体功耗[4]。
本文介绍了依据异构多处理器构建的嵌入式计算平台的软硬件体系结构,并对基于异构多处理器体系构建的433 MHz有源RFID读写机具进行了实验验证。
1 硬件体系结构
基于异构多处理器嵌入式计算平台构建的433 MHz有源RFID读写机具硬件体系结构如图1所示。该平台采用意法半导体公司(ST)的32 bit ARM CortexTM-M3内核处理器STM32F107作为主处理器,采用德州仪器半导体公司(TI)的16 bit MSP430微控制器CC430F5137作为协处理器。STM32F107主处理器与CC430F5137协处理器之间采用串口进行通信。
1.1 主处理器端硬件体系结构
本文构建的433 MHz有源RFID读写机具主处理器STM32F107端提供了3个与上位机通信的接口:USB接口、10/100M自适应以太网接口和UART串口,其中USB接口支持OTG通信模式。为了提高整个系统的安全性,系统还提供了7816 PSAM智能卡接口,该接口能够与PSAM智能卡进行通信。为了保存从协处理器接收到的数据,系统外置了Numonyx恒忆半导体公司的16 MB N25Q128 Nor Flash芯片。
1.2 协处理器端硬件体系结构
为使其协处理器CC430端能够发射125 kHz的低频载波,该读写机具外置了125 kHz的调制放大器。同时,系统还外置了Balun滤波器, 外接433 MHz的天线和433 MHz有源电子标签进行射频通信。
2 软件体系结构
该读写机具软件体系结构如图2所示。其软件系统主要包括主处理器端的软件系统和协处理器端的软件系统。主处理器端软件系统主要包括各个外围设备与接口的驱动模块(如串口驱动模块、网卡驱动模块、USB接口驱动模块、Flash驱动模块、PSAM接口驱动模块、SPI接口驱动模块等)、?滋C/OS-II实时操作系统、基于?滋C/OS-II的TCP/IP协议栈和USB协议栈,以及基于网络接口、USB接口和串口构建的读写机具与上位机之间的通信协议。协处理器端软件系统主要包括相关外围设备与接口的驱动模块(如串口驱动模块和RF1A射频驱动模块等)、系统依据硬件提供的PWM模块所构建的125 kHz低频唤醒通信协议, 以及基于RF1A射频驱动模块构建的433 MHz射频通信协议,该通信协议遵守参考文献[5]中提到的ISO/IEC 18000-7空中接口协议。本文设计和实现了主处理器端软件系统与协处理器端软件系统的串口通信协议。
2.1 主处理器端软件设计
主处理器端软件处理流程如图3所示。系统上电启动后直接从主处理器规定的地址开始执行,首先进行中断向量表和堆栈以及平台相关寄存器的初始化;初始化完成后跳转到?滋C/OS-II实时操作系统主函数,依次初始化系统中的各个硬件设备(如串口、网卡、USB接口、Flash芯片、PSAM接口和SPI接口等);相关硬件设备驱动模块初始化成功后,系统开始?滋C/OS-II操作系统本身的存储管理子系统和进程管理子系统的初始化,然后初始化TCP/IP网络协议栈和USB软件协议栈;各种初始化工作完成后,系统依次创建网络监听服务进程、上位机串口监听服务进程和协处理器串口监听服务进程,其中网络监听服务进程和上位机串口监听服务进程分别用于从网口和串口监听上位机发送的命令并依据读写机具与上位机的通信协议对接收到的数据包进行处理,协处理器串口监听服务进程用于监听从协处理器发出的命令数据包并依据主处理器与协处理器之间的通信协议对命令数据包进行处理。一次数据包处理完成后,系统等待接收下一个数据包进行处理,?滋C/OS-II实时操作系统实现系统相关进程的调度。
2.2 协处理器端软件设计
协处理器端软件处理流程如图4所示。系统上电启动后从处理器指定的地址开始运行,并进行MSP430处理器的中断向量、堆栈和处理器平台的初始化;然后,进行相关外围硬件设备(如串口和RF1A射频模块等)的初始化;初始化完成后进入主循环处理程序。在主循环处理器程序中, 系统利用PWM模块向外发射125 kHz低频唤醒信号,以使射频读写机具唤醒处于休眠状态中的有源电子标签,进而使射频读写机具与有源电子标签之间能够采用433 MHz射频载波进行数据通信,目前读写机具采用OOK(On-Off Keying)调制方式、利用125 kHz的载波与有源电子标签进行数据通信;然后系统打开RF1A射频模块与串口模块的中断,系统产生串口中断即表示接收到主处理器从串口发送的命令数据包,协处理器依据主处理器与协处理器的串口通信协议对命令数据包进行解析;然后系统通过控制RF1A射频模块、依据ISO/IEC 18000-7空中接口协议与有源电子标签采用433 MHz射频信号进行通信。
2.3 主处理器与协处理器通信协议设计
基于异构多处理器的嵌入式计算平台为主处理器与协处理器之间的串口通信定义了相应的通信协议,协议数据包的格式如表1和表2所示。其中,表1为主处理器向协处理器发送的请求数据包格式,表2为协处理器应答主处理器的应答数据包格式。
由于利用串口进行数据通信的过程中,系统需要逐个字节从串口接收数据或向串口发送数据,因此为了有效地对这种通信方式进行处理,参考文献[6]提出采用状态机的方式实现该通信协议。根据协议要求,将整个串口通信的过程分为接收帧头状态、接收帧长度状态、接收命令类型状态、接收命令代码状态、接收参数长度状态、接收命令参数状态和接收校验位状态,系统只有在接收到完整正确的数据包后才将该协议数据包传递给相应的处理进程进行处理。系统的状态转换图如图5所示。
3 实验方案与结果
3.1 实验方案
基于异构多处理器架构的嵌入式计算平台构建的433 MHz有源RFID读写机具测试实验验证方案如图6所示。系统采用了433 MHz有源RFID电子标签与433 MHz有源RFID读写机具进行通信,读写机具通过以太网接口、串口和USB接口与上位机进行连接,上位机上的应用程序依据有源RFID读写机具与上位机的通信协议与读写机具进行通信,读写机具依据ISO/IEC 18000-7协议规范与有源电子标签进行通信,读写机具内部采用Cortex M3处理器和MSP430处理器构建的异构多处理器架构的嵌入式计算平台对上位机应用程序开发人员和有源电子标签设计人员透明。
3.2 结果与讨论
依据参考文献[7]中提出的量化研究方法,当业务需求发生变化时,系统采用嵌入式计算平台需要修改的业务数据部分相关的代码量和在整个代码中修改相关代码的复杂度来衡量系统的灵活性。本设计构建的433 MHz有源RFID读写机具系统中的业务数据部分的代码行为70 080行,控制数据部分的代码行为5 014行,业务数据发生变化时需要修改的代码量2 747行。图7为业务需求发生变化时采用异构多处理器嵌入式计算平台和传统嵌入式计算平台时修改代码的复杂性。传统嵌入
本文在保证系统性能的情况下,采用衡量系统功耗的方式对资源分配的合理性进行度量。所构建的433 MHz有源RFID读写机具中,STM32F107的单位功耗为200 μA/MHz,系统运行频率为70 MHz,因此系统功耗为14 mA;MSP430的单位功耗约为340 ?滋A/MHz,系统运行的频率为20 MHz,因此子系统功耗为6.8 mA,控制部分的代码量占整个代码量的3.772%,系统功耗降低量随控制部分代码比例的变化如图8所示。采用异构多处理器构建的嵌入式计算平台实现了资源更加合理的分配,在保证系统性能的情况下降低了系统的功耗,提高了嵌入式计算平台的可用性。
本文提出了采用异构多处理器体系结构构建嵌入式计算平台的新思路,并依据提出的异构多处理器体系结构、采用Cortex M3内核的STM32F107主处理器和MSP430内核的CC430协处理器构建了433 MHz有源RFID读写机具。对该读写机具和433 MHz有源电子标签用桌面计算系统中的应用程序进行了实际测试。测试结果表明,采用异构多处理器体系结构构建的嵌入式计算平台有效地实现了业务数据部分和控制数据部分的分离,通过将计算密集型应用和控制密集型应用合理分配到不同的计算单元中,使得在业务数据处理流程发生变更时,系统不需要修改控制数据部分,大大提高了系统的灵活性;另一方面,采用异构多处理器架构构建的嵌入式计算平台充分利用不同处理器不同的处理能力,既降低了系统的整体成本又更加合理地利用了系统的资源,提高了系统的效率。最后,采用异构多处理器体系结构重构传统嵌入式计算系统对应用程序开发人员透明,使其具有广泛的应用前景。
参考文献
[1] 王蕾,谢应科,翟杰夫.嵌入式异构多处理器系统中的通信实现[J]. 计算机应用研究,2005,22(2):200-201.
[2] 岳虹. 嵌入式异构多核处理器设计与实现关键技术研究[D]. 湖南:国防科学技术大学,2006.
[3] Intel Corporation. Enhanced Intel SpeedStep technology for the Intel Pentium M processor[Z]. 2004.
[4] 陈芳园,张冬松,王志英.异构多核处理器体系结构设计研究[J]. 计算机工程与科学,2011,33(12):27-36.
[5] ISO 2003.ISO/FCD 18000-7 Information technology-Radio frequency identification for item management-Part 7:Parameters for active air interface communications at 433 MHz[S].2009.
[6] 刘宏斌.采用状态机和消息机制的串口接收程序[J]. 单片机与嵌入式系统应用,2004(10):72-73.
[7] HENNESSY J L,PATTERSON D A. Computer architecture: a quantitative approach[M].5th Edition. San Francisco:Morgan Kaufman Publisher, 2011.