基于ARM的实时测控系统开发平台
(3)网络化
TCP/IP协议栈使得嵌入式系统可以通过Internet将通信距离无限扩展。10M以太网使得大量数据的快速传输成为可能。这样,除了可以充分利用PC机上各种资源,完成数据的存储、分析、统计工作外,还可以实现测控系统间的数据交换,对于智能化、模块化的嵌入式设备集群的实现提供了另一种途径。PPP协议,可以通过调制解调器实现远程的数据交换、状态控制等功能,为嵌入式系统提供了更灵活的控制、监测方式。
我们选用了Interniche公司(http://www.iniche.com)开放源码的嵌入式TCP/IP协议栈。Interniche使我们很容易在ìC/OS-Ⅱ的调度下为开发平台增加网络通信和网络管理等功能。由于它是专门为嵌入式系统而设计的,占用的系统资源很小。Interniche协议全部用标准C语言。它除了可以运行在各种RTOS下,如ìC/OS、VRTX、CMX、Threadx等,还可以在没有RTOS的环境下独立运行。此外,Interniche还在ìC/OS-Ⅱ的基础上专门为其嵌入式TCP/IP协议栈编写了自己的嵌入式实时多任务操作系统:ChronOS。ChronOS除了保持对已经广泛使用的ìC/OS-Ⅱ的兼容性以外,还使嵌入式TCP/IP协议栈与RTOS更加紧密地结合在一起,来满足各种现代应用对RTOS和嵌入式TCP/IP协议相结合的迫切需求。
常用的Interniche包括:
① 核心协议。
◇ NicheStackTM--InternicheTCP协议包含TCP、UDP、IP、TFTP、DHCP Client、ICMP、ARP、SLIP、BootTP、DNS Client。
◇ Niche ToolTM--菜单驱动的协议调试和测试工具(包含在NicheStack和Nichelite中)。
◇ NicheLiteTM--Interniche微型化的TCP/IP协议,全部代码在12KB以内;它包含全部的 NichestackTM所有的协议和1个最少化的Socket API,易于移植到从8位到32位CPU上。
可选择应用模块: PPP、Multilink PPP、PPPoE、Telnet(Server&Client)、FTP(Server&Client)、IP Multicast、NichePOP3。它使TCP/IP上的附加模块增加了POP3 Email服务器收邮件功能。
② 基于WEB管理和配置协议。
◇ WebportTM--嵌入式Web服务器,让最终用户通过WWW浏览器配置和监控嵌入式设备而避免去编写专用的GUI界面。这些界面多数是与主机OS相关的(如Win98),而且需要目标环炒罅康淖试矗缥募低场?br> ◇ Email Alerte--为嵌入式系统增加预告和报警功能。它允许用户向本地或远程的Email地址发出预先设置好的信息,比如某个条件下的报警信息。
javascript:window.open(this.src);" style="cursor:pointer;"/>
2 开发平台的具体实现
(1)开发测试板的硬件测试
完成NetCARM7设计、板焊接以后,使用Abatron公司 (http://www.abatron.ch) JTAG仿真器BDI2000,通过编写BDI配置文件对NetCARM7板进行初始化,初步验证板上CPU工作是否正常,检查SRAM、Flash ROM是否可以正常读/写。
(2)BDI2000结合IAR EW的软件测试
在板上存储器正常工作的基础上,使用IAR公司 (http://www.iar.com) 的集成开发环境Embedded Workbench编写出简单的测试程序,其中包括汇编语言、C语言。只要在EW中利用它提供的嵌入式C/C++优化编译器、汇编器、连接定位器,就可以生成目标机的可执行程序;利用EW的C-SPY调试器中支持的RDI接口,就可以和BDI2000建立连接,直接将编写的代码下载到板上在线仿真。由于BDI2000仿真器是通过10M以太网连接计算机,并且通过JTAG接口与目标机相连,BDI2000与目标机的通信速率可达16Mb/s,程序下载速率可达320 KB/s,因此可以大大提高平台软件开发的效率。
在初步的测试程序编写完成以后,逐步对板上的其它外设和通信端口进行测试。
(3)串口监控程序
NetCARM7上的串口除了可以提供少量数据传送和控制信息的输入/输出以外,为了方便平台的软件维护,我们还开发了一个基于板上串口的监控程序,经RS232接口就可将PC与NetCARM7相连,完成以下功能:① 显示处理器各状态下寄存器的值;② 修改指定地址的SRAM、FlashROM中的内容;③ 查看指定地址的存储器中的内容;④ 将用户编写的代码下载到NetCARM7的指定地址的SRAM、Flash ROM中;⑤ 从指定地址开始执行用户代码;⑥ 通过设置跳线,选择从用户放在FlashROM中的代码直接启动(上电后直接运行用户的应用程序);⑦ 支持用户设置的软件中断,在中断以后可以使用①、②、③项功能,用以方便用户调试自己的代码。这样,在平台用于实际的测控系统产品以后,在仪器工作现场只需改变跳线就可以使板上的监控程序工作,通过串口升级整个系统软件,也包括监控程序本身,在没有JTAG调试工具的时候,方便地对可能出现的比较简单的问题进行修复。
(4)ìC/OS-Ⅱ的移植
对ìC/OS-Ⅱ的移植在BDI2000和IAR EW的帮助下变得非常简单。在完成CPU的初始化以后,首先对时钟节拍进行设置(10~100Hz)。对AT91M40800只需编写相应的定时器中断处理程序,在程序中调用操作系统的OSTimeTick(),并在其AIC(Advanced Interrupt Controller )中设置定时器的优先级别,并将定时器中断处理程序的地址放到相应的中断向量表中即可。使定时器产