国内测控系统开发大多是几个人以小组的形式根据不同的项目组织在一起,由于缺乏一个稳定工作的硬件基础,整个开发工作的重点大都放在调试硬件故障上。首先,所有项目的开发几乎全部使用汇编语言,严重影响了程序的可读性和可移植性,更换不同的处理器就意味着一切从头开始,就连使用相同处理器的不同项目组之间的程序重用也很困难;而对于嵌入式应用系统应着重解决的实际问题往往无暇顾及,非常不利于我国嵌入式应用水平的提高。其次,测控系统通信接口种类比较少, 多为传统的RS232、RS485接口,数据交换速度慢,已经不能满足日益增长的数据传输需求。另外,传统的8位单片机已经越来越不能适应日渐复杂的应用需求;友好的交互界面、网络互连功能、智能化的软件、实时的数据处理几乎成了现代实时测控系统的共同需求。
我们开发了基于ARM内核处理器的NetCARM7开发板,通过在嵌入式实时多任务操作系统ìC/OS-Ⅱ上加入Interniche公司的嵌入式TCP/IP协议栈实现了一个网络化、智能化、高性能的现代实时测控系统开发平台。此外,通过JTAG在线调试工具BDI2000 RDI for ARM和集成开发环境IAR EW的结合,大大提高了程序调试的效率。
1 平台设计
ARM内核处理器具有高性能、低功耗、低成本、低开发难度等一系列优点,是测控系统由8位机升级到32位机的理想选择。此外,ARM7、ARM9、ARM10、XScale的指令兼容,已有的软件资源和开发经验不会由于升级到更高性能的处理器而受到巨大的损失。
(1)平台的硬件基础
我们开发了NetCARM7开发板(处理器为Atmel公司的ARM7TDMI内核的AT91M40800,主频可达40 MHz)作为中低端实时测控系统开发平台的硬件基础。AT91M40800性能已经可以满足一般测控系统的各种需求,功能简单易用,双面板就可以形成稳定硬件设计,大大降低了开发成本。板上将处理器的所有引脚引出,可以根据实际的项目需求灵活地扩展出新的应用;集成了多达2 MB的 SRAM,保证用户代码可以获得最高的性能。1 MB Flash ROM用来满足绝大多数项目的需求。板上预留了JTAG端口,通过Abatron公司的BDI在线仿真器和IAR公司的集成开发环境Embeded Workbench for ARM 可以实现各种程序的在线调试。板上提供了2个串口,还可以将处理器的UART配置成SPI,除了完成通信功能以外,还可以很容易地连接A/D变换器,满足测控系统的需求。板上还扩展了10 M以太网接口。在网络控制器方面,选用了低成本符合NE2000标准的RTL8019,为平台提供了网络化的硬件基础。此外,板上还集成了液晶及行列式键盘接口,可以很方便地为嵌入式应用系统提供友好的用户交互方式。硬件平台如图1所示。
(2)开放源码的嵌入式多任务操作系统
测控系统所要完成的工作越来越复杂,程序越来越庞大,需要管理的外设越来越多,只有拥有嵌入式多任务操作系统,拥有稳定工作的硬件基础,开发工作重点才能由原来硬件的调试、软件的 DEBUG转变为对于实际应用系统的性能的提高、智能化软件的编写。此外,只有在一个完整的、具有统一编程规范的操作系统基础上,使用高级语言开发出的应用程序,才可能具有良好的可移植性,才可能被重复利用。嵌入式多任务操作系统是实现现代实时测控系统开发平台的唯一途径。操作系统与模块化硬件设计结合起来,共同构成一个可以重复利用的软硬件数字系统平台,除了可以最大限度地提高开发的效率、减少资源的浪费外,还可以通过长期对于该平台的研究,逐步优化平台软硬件资源,提高其性能,并满足日益复杂的应用需求。
目前大多商用嵌入式操作系统出于商业利益的考虑,除了使用该操作系统的每件产品要收取版税以外,要么只提供操作系统核心部分二进制文件,要么对源代码的收费十分昂贵,对于此类操作系统的使用者来讲,几乎无法拿到操作系统的源代码。这样,一方面产品的进一步发展受制于人;另一方面对于嵌入式应用系统容易出现隐患,无法从根本上避?quot;后门"。只有对开放源代码的操作系统进行不断的理解、改造、优化,才有利于我国嵌入式开发水平的稳步提高。
对于小型实时测控系统来说,源代码公开的、具有很好可移植性的、可固化可裁剪的、高稳定性与可靠性、抢占式多任务的ìC/OS-Ⅱ非常适合!代码简洁的ìC/OS-Ⅱ已经应用于照像机业、医疗仪器、音响设备、发动机控制、网络接入设备、高速公路电话系统、ATM机、工业机器人等嵌入式实时系统。
(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),而且需要目标环炒罅康淖试矗 |