基于ARM CPU 的实时控制系统开发平台
3 基于ARM的现代实时控制系统开发平台具体实现
3.1硬件设计和测试
完成NetCARM7设计、板焊接以后,我们使用Abatron公司(http://www.abatron.ch) JTAG仿真器BDI2000,通过编写BDI配置文件对NetCARM7板进行初始化,初步验证板上CPU工作是否正常,检查SRAM,Flash ROM是否可以正常读写。
3.2 通过BDI2000/1000结合IAR EW集成开发环境调试各种测试软件
在板上存储器正常工作的基础上,使用IAR公司(http://www.iar.com)的集成开发环境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地址发出预先设置好的信息,通知测控设备的工作情况,实现嵌入式控制设备真正的"无人值守"远程控制。
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)