基于ARM的实时控制系统开发平台设计

ARM

36人已加入

描述

1 前言

  国内控制系统开发大多是几个人以小组的形式根据不同的项目组织在一起,由于缺乏一个稳定工作的硬件基础,整个开发工作的重点大都放在调试硬件故障。所有项目的开发几乎全部使用汇编语言,严重影响了程序的可读性和可移植性,更换不同的处理器就意味着一切从头开始,就连使用相同处理器的不同项目组之间的程序重用也很困难。而对于嵌入式应用系统应着重解决的实际问题往往无暇顾及,非常不利于我国嵌入式应用水平的提高;其次,测控系统通讯接口种类比较少, 多为传统的RS-232、RS-485接口,数据交换速度慢,已经不能满足日益增长的数据传输需求;再次,传统的8/16位单片机已经越来越不能适应日渐复杂的应用需求,友好的交互界面、网络互连功能、智能化的软件、实时的数据处理几乎成了现代实时测控系统的共同需求。

  我们开发了基于ARM内核处理器的NetC ARM7开发板,通过在嵌入式实时多任务操作系统uC/OS-Ⅱ上加入Interniche公司的嵌入式TCP/IP协议栈实现了一个网络化、智能化、高性能的现代实时测控系统开发平台。此外通过JTAG在线调试工具BDI2000 RDI for ARM和集成化开发环境IAR EW(或者ARM SDT/ADS)的结合大大提高了程序调试的效率。

     2 平台设计

  ARM内核处理器具有高性能、低功耗、低成本、低开发难度等一系优点,是测控系统由8/16位机升级到32位机的理想选择。此外ARM7,ARM9,ARM10,Xscale的指令兼容,已有的软件资源和开发经验不会由于升级到更高性能的处理器而受到巨大的损失。

     2.1 平台需要建立在稳定的可扩展的硬件基础之上

  我们开发了NETCARM7开发板(处理器为ATMEL公司的ARM7TDMI内核的AT91M40800,主频可达40MHz)作为中低端实时测控系统开发平台的硬件基础。AT91M40800性能已经可以满足一般测控系统的各种需求,功能简单易用,双面板就可以形成稳定硬件设计,大大降低了开发成本。板上将处理器的所有管脚引出,可以根据实际的项目需求灵活的扩展出新的应用。还集成了多达2M-byte的SRAM,保证用户代码可以获得最高的性能,1M-byte Flash ROM,用来满足绝大多数项目的需求。板上预留了JTAG端口,通过Abatron公司的BDI在线仿真器和IAR公司的集成开发环境EmbededWorkbench for ARM可以实现各种程序的在线调试。板上提供了2个串口,还可以将处理器的UART配置成SPI,除了完成通讯功能以外,还可以为很容易的连接AD变换器,满足测控系统的需求。板上还扩展了10M以太网接口,在网络控制器方面,我们也选用了低成本符合NE2000标准的RT8019,为平台提供了网络化的硬件基础。此外板上还集成了液晶显示,及行列式键盘接口可以很方便的为嵌入式应用系统提供友好的用户交互方式。

    2.2 开放源码的嵌入式多任务操作系统是未来嵌入系统必然的选择

  控制系统所要完成得工作越来越复杂,程序越来越庞大,需要管理的外设越来越多,只有拥有嵌入式多任务操作系统,拥有稳定工作的硬件基础,开发工作重点才能由原来硬件的调试,软件的调试转变为对于实际应用系统的性能的提 高,智能化软件的编写。此外只有在一个完整的、具有统一编程规范的操作系统基础上使用高级语言开发出的应用程序,才可能具有良好的可移植性,才可能被重复利用,嵌入式多任务操作系统是实现现代实时控制系统开发平台的唯一途径。操作系统与模块化硬件设计结合起来,共同构成一个可以重复利用的软硬件数字系统平台,除了可以最大限度的提高开发的效率、减少资源的浪费外,还可以通过长期对于该平台的研究,来逐步优化平台软硬件资源,提高其性能,并满足日益复杂的应用需求。 

  目前大多商用嵌入式操作系统出于商业利益的考虑,除了使用该操作系统的每件产品要收取版税以外,要么只提供操作系统核心部分二进制文件,要么对源代码的收费十分昂贵,对于此类操作系统的使用者来讲,几乎无法拿到操作系统的源代码。这样,一方面产品的进一步发展受制于人,另一方面对于嵌入式应用系统容易出现隐患,无法从根本上避免"后门"-既安全性。

  对于小型实时控制系统来说,源代码公开的、具有很好可移植性的、可固化可裁剪的、高稳定性与可靠性、抢占式多任务的uC/OS-Ⅱ非常适合!代码简洁的uC/OS-Ⅱ已经应用于照像机业、医疗仪器、音响设备、发动机控制、网络接入设备、高速公路电话系统、ATM机、工业机器人等嵌入式实时系统。

     2.3 网络化是现代实时控制系统必备的特征

  TCP/IP协议栈使得嵌入式系统可以通过Internet将通讯距离无限扩展。10M以太网,使得大量数据的快速传输成为可能,这样除了可以充分利用PC机上各种资源,完成数据的存储、分析、统计工作,还可以实现测控系统间的数据交换,对于智能化、模块化的嵌入式设备集群的实现提供另一种途径。PPP协议可以通过调制解调器实现远程的数据交换、状态控制等功能,为嵌入式系统提供更灵活的控制、监测方式。

  我们选用了Interniche公司开放源码的嵌入式TCP/IP协议栈。Interniche使我们很容易的在uC/OS-Ⅱ的调度下为开发平台增加了网络通信和网络管理等功能。由于它是专门为嵌入式系统而设计的,占用的系统资源很小。Interniche协议全部用标准C语言,除了可以运行在各种RTOS下,亦可在没有RTOS的环境下独立运行。此外,Interniche还在uC/OS-Ⅱ的基础上专门为其嵌入式TCP/IP协议栈编写了自己的嵌入式实时多任务操作系统:ChronOS (既uC/OS-Ⅱ2.52)。ChronOS除了保持对已经广泛使用的uC/OS-Ⅱ的兼容性以外,使嵌入式TCP/IP协议栈与RTOS更加紧密的结合在一起,来满足各种现代应用对RTOS和嵌入式TCP/IP协议相结合的迫切需求。

常用的Interniche包括:

(1) 核心协议

  NicheStackTM-InternicheTCP协议包含TCP,UDP,IP,TFTP,DHCP Client,ICMP,ARP,SLIP,BootTP,DNS Client。
NicheLiteTM-Internicheda单连接的微型化的TCP/IP协议,全部代码在12K以内,它包含全部的NichestackTM所有的协议,和一个最少化的Socket API,易于移植到从8位到32位CPU上。
Niche TooLTM-菜单驱动的协议调试和测试工具(包含在NicheStack和Nichelite中)
可选择应用模块:PPP,Multilink PPP,PPPoE,Telnet(Server&Client),FTP(Server&Client),IP Multicast,NichePOP3-它是TCP/IP上的附加模块增加了与POP3Email服务器收邮件功能。

(2) 基于WEB管理和配置协议

  WebportTM-嵌入式Web服务器,让最终用户通过WWW浏览器配置和监控嵌入式设备而避免去编写专用的GUI界面,这些界面多数是与你的主机OS相关的(如Win98)而且需要目标环境大量的资源如文件系统。
Email Alerte--为嵌入式系统增加预 告和报警功能,它允许用户向本地或远程的Email地址发出预先设置好的信息比如 某个条件下的报警信息。 

    3 基于ARM的现代实时控制系统开发平台具体实现

    3.1硬件设计和测试

  完成NetCARM7设计、板焊接以后,我们使用Abatron公司 JTAG仿真器BDI2000,通过编写BDI配置文件对NetCARM7板进行初始化,初步验证板上CPU工作是否正常,检查SRAM,Flash ROM是否可以正常读写。

     3.2 通过BDI2000/1000结合IAR EW集成开发环境调试各种测试软件

  在板上存储器正常工作的基础上,使用IAR公司的集成开发环境Embedded Workbench编写出简单的测试程序,其中包括汇编语言、C语言,只要在EW中,利用它提供的嵌入式C/C++优化编译器,汇编器,连接定位器就可以生成目标机的可执行程序,利用EW的C-SPY调试器中支持的RDI接口就可以和BDI2000/1000建立连接,直接将编写的代码下载到板上在线仿真。由于BDI2000仿真器是通过10兆以太网连接计算机,并且通过JTAG接口与目标机相连,BDI2000与目标机的通信速率可达16兆/秒,程序下载速率可达320K字节/秒,因此可以大大提高平台软件开发的效率。

    在初步的测试程序编写完成以后,逐步对板上的其他外设和通讯端口进行测试。

    3.3 带有简单调试功能的串口监控程序

  NetCARM7上的串口除了可以提供少量数据传送、控制信息的输入输出以外,为了方便平台的软件维护我们还开发了一个基于板上串口的监控程序,经RS-232接口就可将PC与NetCARM7相连,完成以下功能:1).显示处理器各状态下寄存器的值。2).修改指定地址的SRAM、FlashROM中的内容。3).查看指定地址的存储器中的内容。4).将用户编写的代码下载到NetCARM7的指定地址的SRAM、Flash ROM中。5).从指定地址开始执行用户代码。6).通过设置跳线,选择从用户放在FlashROM中的代码直接启动(上电后直接运行用户的应用程序)。7).支持用户设置的软件中断,在中断以后可以使用1、2、3项功能,用以方便用户调试自己的代码。这样,在平台用于实际的测控系统产品以后,在仪器工作现场只需改变跳线就可以使板上的监控程序工作,通过串口升级整个系统软件,也包括监控程序本身,在没有JTAG调试工具的时候,方便的对可能出现的比较简单的问题进行修复。

    3.4 uC/OS-Ⅱ的移植

  对uC/OS-Ⅱ的移植在BDI2000和IAR EW的帮助下变得非常简单。在完成CPU的初始化以后,首先对时钟节拍进行设置(10~100hz)。对AT91M40800只需编写相应的定时器中断处理程序,在程序中调用操作系统的OSTimeTick(),并在其AIC(Advanced Interrupt Controller)中设置定时器的优先级别,并将定时器中断处理程序的地址放到相应的中断向量表中,就可以了。使定时器产生中断,必须在开始多任务调度后,即在第一个任务中使能定时器;其次,对uC/OS-Ⅱ移植主要集中在includes.h,OS_CPU_A.S,OS_CPU_C.C等CPU相关文件的移植,上层任务调度部分不需要任何修改。对于多任务操作系统,只需将复杂的应用分成简单的、相互联系的任务,再把各个不同优先级的任务交给操作系统去管理就可以了。 

    3.5 Interniche协议栈的移植

  BDI2000结合IAR EW在线调试对于驱动程序的编写的帮助作用更加明显。对于同样具有良好可移植特性的Interniche协议栈,只需要根据以太网络控制器RT8019手册上的详尽描述,编写出发送包,接收包的函数,以及用于以太网控制器的外部中断处理程序就可以完成对Interniche的网络部分的移植。由于Interniche协议栈也是可以获得源码的,所以对于任何网络控制器都可以通过不断的调试最终完成自己的驱动程序。此外,为了方便调试,使Niche ToolTM-菜单驱动的协议调试和测试工具工作还应该完成对Interniche中向串口收发字符putchar(); getch()的移植,就可以在PC端使用超级终端经过串口与NetCARM7上的Interniche基于命令行交互了。Interniche的各种协议簇可以根据需要由uC/OS-Ⅱ调度的状态查询任务。这样uC/OS-Ⅱ就和Interniche一起构成了现代实时测控系统开发平台的软件核心。

     3.6 开发平台可以为实际控制系统实现各种灵活的

网络应用和远程控制

  ⑴图形化操作界面(基于Interniche 的webserver,通过WWW浏览器实现)

  利用Interniche提供的WebportTM 让最终用户通过局域网或广域网访问嵌入式控制系统,在WWW浏览器中设置测控设备工作参数、监控其运行状态及察看测量结果。 而避免为嵌入式测控系统专门去编写专用的GUI交互界面,在不同的仪器设备中的界面只需编写不同的html页面,结合CGI技术就可以完成各种灵活、友好的交互功能了,这些界面只需要目标机提供存储空间就可以了。

⑵真正的远程控制
  利用Interniche提供的PPP拨号上网,使用Email Alerte为嵌入式测控系统增加预告和报警功能,测控设备就可以向远程的Email地址发出预先设置好的信息,通知测控设备的工作情况,实现嵌入式控制设备真正的"无人值守"远程控制。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分