新闻中心

EEPW首页>嵌入式系统>设计应用> 基于ARM微控制LPC2138的分布式系统设计

基于ARM微控制LPC2138的分布式系统设计

作者: 时间:2012-11-01 来源:网络 收藏

无极性连接设计

实现无极性连接有利于工程施工,方便系统扩容。如果采用差分曼彻斯特编码的方法虽然可靠性高,但需要增加编解码器,提高了硬件复杂性。本系统采用了异或门和软件编程的方法实现。即在信息输入输出部分增加异或门进行控制,当连接错误的时候控制引脚输出高电平对信息取反,连接正确引脚输出低电平信息不变。通过程序实现系统的自动信息监测和自动控制,由主机发送系统自检信息,包括一个正向数据信息和反向的数据信息,在信息中包含正反信息码,当从机接收到这些信息的时候就可以自动调整自己的控制端进行相应的控制操作。使用这种方式只需增加少许的软硬件开销就实现了无极性的控制。

在应用编程(1AP)实现

许多场合(例如地下灯光控制、土壤检测)在系统布好后就不易进行系统重新配置和程序的更新,所以采用IAP技术不仅使系统的适应能力增强,工作寿命增长而且维护比较方便。

的IAP程序位于BootBlock中,占用12KB存储空间,位于地址0x0007D000-0x0007FFFF的Flash中,同时它的最低64字节也出现在从地址0x00000000开始的Flash存储器区域,所以复位后中断向量被激活,跳转到Boot Block装载程序的入口。Boot装载程序控制复位后的初始化操作,并提供实现Flash编程的方法。 IAP程序是Thumb代码,位于地址0x7FFFFFFO(重映射后地址)处。IAP的功能可用下面的C代码来调用。

(1)定义IAP程序的入口地址(由于IAP地址的第0位是1,因此,当程序计数器转移到该地址时会引起Thumb指令集的变化)

#define IAP_LOCATIONOx7FFFFFFl

(2)定义数据结构或指针

unsigned long command[5];

unsigned long result[2];

(3)定义函数类型指针

Typedef void(*IAP)(unsignedint[],unsigned int[]);

IAP iap_entry;

(4)设置函数指针

iaP_entrY = (I A P)lAP_LOCATl0N;

(5)调用IAP

iap_entry(command,result);

程序开发采用公司的集成开发工具ADS1.2,把终端程序分为主程序和更新程序两部分:

主程序用来实现终端的功能,是需要进行更新的部分,更新程序仅负责主程序的更新。编译链接时主程序占据0~14扇区,更新程序占据22~26扇区,15~21扇区用来存储待更新主程序。更新程序用到的数据定义到片内R A M中0x40007800~0x40007FFF区域。另外为了实现主程序和更新程序的精确定位,设置Linker中Linktype用Scattered方式,它能根据格式文件中指定的地址映射生成ELF格式的映像文件。

更新过程可大体分为程序更新准备和程序更新两个阶段:

准备阶段分三步完成,首先主站通过RS485总线将编译过的新终端主程序(不包含更新模块)分成小的数据单元下传给终端,终端将收到的经校验正确的数据存储到片内F1ash存储器中,然后主站查询终端代码的接收情况,并对传输错误的部分重新下传进行更正,最后主站发送启动更新指令,终端检验程序数据正确性并置上更新标志,停止刷新看门狗,从而使终端复位。

程序更新分两步完成,首先终端重启时检测到更新标志有效即可调用更新程序进行程序更新,程序更新完成后再次使终端自复位,即可运行更新后的程序代码,完成程序更新全过程。

另外,由于IAP服务代码是Thumb指令,用c程序直接调用时须在设置编译参数ATPCS时选中Arm/ThumbInte2rworking项。由于执行IAP命令使用片内RAM顶端的32个字节空间,因此用户程序不应该使用该空间。调用IAP功能前,要关闭PLL、MAM(存储器加速模块)部件及所有中断以及正确设置系统时钟。

结语

基于微处理器的分布式控制系统不仅提高了系统集成度,增强了系统功能和系统稳定性,而且通过其强大的处理能力和IAP技术也使得系统智能化程度提高,符合分布式控制系统的发展方向。

参考文献:

[1].RS485datasheethttp://www.dzsc.com/datasheet/RS485_585289.html.
[2].datasheethttp://www.dzsc.com/datasheet/_454528.html.
[3].ARM7TDMI-Sdatasheethttp://www.dzsc.com/datasheet/ARM7TDMI-


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭