该系统采用DSP+ARM9的双CPU形式,其中,DSP采用TI公司的TMS320F2812;ARM9采用Samsung的S3C2410。该系统中ARM部分用购买的开发
板进行开发测试。
TMS320F2812提供了足够的处理能力,使一些复杂实时控制算法的应用成为可能,它主要完成对三相交流电压、电流的数据采集,电压和电流经过信号调理电路,经互感器隔离降压,经低通滤波器滤除高频分量,使电压和电流进入TMS320F2812处理器,之后通过TMS320F2812对这些数据进行计算处理,再通过CAN总线通信将处理好的数据传送给ARM模块。
S3C24lO是Samsung公司推出的16/32位RISC处理器,具有低成本、低功耗、小体积、高性能的特点,集成了丰富的片上资源。系统中,其主要作用是利用CAN总线通信来接收从DSP传过来的数据,并对其进行LCD显示,以实现实时监测,同时,还可通过USB接口将数据存储到U盘上。其中,TMS320F2812的CAN收发器型号为PCA82C250。TMS320F2812片上集成了CAN通信接口,可直接与PCA82C250上的TXD和RXD相连,并将信号转换成CANH,CAHL后,在CAN总线上传输。由于ARM开发板并没有提供CAN接口,所以此部分要进行外扩。S3C2410与CAN总线的接口采用SPI转CAN的方式,控制器采用Microchip公司的MCP2515。S3C24lO的SPI接口可直接与MCP2515控制器的SPI接口相连,控制器输出端的信号经PCA82C250转化为CANH,CANL后,在CAN总线上传输。
3 嵌入式操作系统Win CE的定制、移植及驱动程序的开发
3.1 CAN驱动程序的开发
Platform Builder本身自带了很多驱动程序,如串口驱动、USB口驱动等,但由于系统中的CAN总线通信部分是外扩的,开发商提供的BSP开发包不包含这部分驱动,要自行编写驱动程序和注册表部分的文件,定制出CEC文件,并将生成的驱动与BSP进行绑定。CAN驱动开发流程为:
编写CAN驱动时,首先要确保S3C24lO的SPI接口可以正常工作,再利用SPI接口对MCP2515寄存器进行相应的设置。
CAN总线驱动的设计步骤为:
(1)初始化S3C2410的SPI口。设置波特率、主从模式、通信方式等;
(2)初始化MCP2515。设置相应的发送、接收缓冲器;
(3)编写CAN控制器的收发程序;
(4)编写CAN流接口的函数形式;
(5)导出流接口,修改注册表和CEC文件。
3.2操作系统的移植
对Windows CE操作系统进行移植,先进行WinCE Bootloader的开发,然后进行操作系统的特性配置和移植,再进行硬件平台上驱动程序的开发,最后对应用程序进行移植和开发。
(1)Bootloader的开发。Bootloader的结构可以分为BL Common、OEM代码、Eboot、存储管理、EDBG驱动程序五个部分。这五部分中,除了OEM代码需要自己编写外,其他几个部分的代码都是由Windows CE本身提供的。
(2)内核的配置和移植。Win CE内核的配置和移植是在Platform Builder的帮助下,根据系统的具体应用目标来进行各种功能裁减,然后由Sysgen即可编译生成所需的操作系统镜像NK.bin。当PlatformBuilder成功编译生成WinCE内核后,通过PlatformBuilder自带的TFPT网络传输工具或其他TFPT网络传输工具将内核下载至硬件平台中。
(3)驱动程序开发。Windows CE提供了特定的驱动程序框架,以驱动内部或者外围的硬件设备。驱动程序位于操作系统与硬件的中间,是BSP包的一部分,将操作系统与设备链接起来,操作系统就能识别设备,并为应用程序提供相应的服务。在此主要介绍了CAN驱动程序的开发。
(4)应用程序的开发和移植。完成以上内容后,就可以针对硬件平台和具体系统要求进行应用程序的开发。
4 结语
设计了一种基于ARM9和Windows CE的数据采集系统,采用TMS320F2812处理器对数据进行采集,充分发挥了这款DSP芯片的数据处理能力;S3C24lO和Windows CE嵌入式系统的应用,使得系统能够实现数据的实时显示和监测。文中实现了对硬件平台的设计和对Windows CE操作系统的定制、移植及其驱动程序的开发。该系统具有实时性好,性价比高等特点,有很高的实用价值。