您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

基于ARM微控制LPC2138的散布式体系计划

发布日期:2011-05-18

       散布式控制体系(DistributedControl System,DCS)是应用谋略机技能对生产进程举行会合监测、办理和疏散控制的综合性网络体系。

       如今,采取微控制器作为散布控制内核,通过RS485网络构建的散布式控制体系在产业、农业、医疗等范畴得到了遍及的应用,比方,散布式温室环境信息监测体系,散布式水下计算机灯控制体系等等。

       LPC2138是飞利浦公司推出的基于ARM7TDMI-S内核的微控制器,它具有非常丰富的外围模块,强大的处理惩罚和控制成果,非常易于构建嵌入式体系。用它构建的散布式控制体系,不但体积小,性价比高,并且还具有稳固可靠、成果强大、开辟周期短等特点。LPC21 38微控制器先容LPC2138内嵌512KB的高速Flash存储器和32KB的RAM,具有丰富的外设资源:2个32位定时器(带捕获、比较通道);2个10位8路ADC;1个10位DAC;PWM通道;4 7 路GPIO;9个边沿或电平触发的外部停止;具有独立电源和时钟的RTc;多个串行接口(UART、I2C、SPI、SSP)。它内含向量停止控制器,可配置停止优先级和向量地点,片内Boot装载步伐可以实如今体系/在应用编程(ISP/IAP),通过片内PLL可实现60MHz的CPU操纵频率,具有空闲和失电2种低功耗模式,并且可通过外部停止唤醒。

       控制体系计划

       在散布式的控制体系中一样平常采取通用的单片机作为控制处理惩罚的内核,不但速率慢信息处理惩罚本领弱,并且一样平常必要附加很多外围电路,比方RAM、ROM、ADC、DAC、看门狗等等。采取ARM微控制器LPC2138为内核的散布式控制体系,通过扩展大略的外围电路(表现模块、停止键盘、RS485模块),开辟相应的嵌入式步伐即可实现成果强大的体系,不但具有较高的体系集成度和稳固性,并且开辟周期比较短。本文所计划体系总体框图如图1所示,包括了OLED表现、停止键盘、RS485接口和EXT_CON接口(用来成果扩展的预留接口)。

       表现体系计划

       体系表现模块采取OLED表现模块VGSl2864E,它是64×128矩阵式单色图形字符表现模块,由于采取有机发光技能,无需背光源,以是与传统LCD相比在阳光照射下更能出现清楚的图像和数据。别的它还具有高亮度、高比拟度、宽视角、低驱动电压和高发光服从等良好的特性,较宽的温度范畴(存储温度:-30℃~80℃,事变温度:-20℃~70℃)也能适应更恶劣的环境。

       VGS12864E利用两片列驱动控制器,内嵌64×64表现数据RAM,RAM中每位数据映射屏上一个点的亮、暗,每个半屏都被分成了按行的八页,由于每个字节的数据按低位(LSB)在上,高位(MSB)在下的布局分列,以是在提取字库的时间,必要设置取字模的方法为:纵向取模,字节倒序。它与LPC2138的连接如图2所示。ARM和OLED之间必要加电平转换芯片,本计划采取16位双向电平转换芯片IDT74FCT164245,别的举行电平转换时必要举行方向控制(图2中DIR即为方向控制脚)。

       RS485接口电路计划

       RS485通讯部分采取TI公司的SN65HVD24收发芯片,它具有较高的共模电压范畴(一 20~25V),支持最多256个节点,高达16kV的ESD,通讯速率在500m时最高达3Mbps。为了防备串行通讯时外界滋扰引入微控制器,在微控制器和RS485通讯芯片间参加了光电断绝电路,电路图见图3。

       无极性连接计划

       实现无极性连接有利于工程施工,方便体系扩容。要是采取差分曼彻斯特编码的要领固然可靠性高,但必要增长编解码器,进步了硬件巨大性。本体系采取了异或门和软件编程的要领实现。即在信息输入输出部分增长异或门举行控制,当连接错误的时间控制引脚输出高电平对信息取反,连接精确引脚输出低电平信息稳固。通过步伐实现体系的主动信息监测和主动控制,由主机发送体系自检信息,包括一个正向数据信息和反向的数据信息,在信息中包括正反信息码,当从机吸取到这些信息的时间就可以主动调解本身的控制端举行相应的控制操纵。利用这种方法只需增长少许的软硬件开销就实现了无极性的控制。

       在应用编程(1AP)实现

       很多场合(比方地下灯光控制、泥土检测)在体系布好后就不易举行体系重新配置和步伐的更新,以是采取IAP技能不但使体系的适应本领加强,事变寿命增长并且维护比较方便。

       LPC2138的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);

       步伐开辟采取ARM公司的集成开辟东西ADS1.2,把终端步伐分为主步伐和更新步伐两部分:

       主步伐用来实现终真个成果,是必要举行更新的部分,更新步伐仅认真主步伐的更新。编译链接时主步伐占据0~14扇区,更新步伐占据22~26扇区,15~21扇区用来存储待更新主步伐。更新步伐用到的数据定义到片内R A M中0x40007800~0x40007FFF地区。别的为了实现主步伐和更新步伐的正确定位,设置ARMLinker中Linktype用Scattered方法,它能根据格局文件中指定的地点映射天生ELF格局的映像文件。

       更新进程可大概分为步伐更新准备和步伐更新两个阶段:

       准备阶段分三步完成,起首主站通过RS485总线将编译过的新终端主步伐(不包括更新模块)分成小的数据单位下传给终端,终端将收到的经校验精确的数据存储到片内F1ash存储器中,然后主站查问终端代码的吸取环境,并对传输错误的部分重新下传举行改正,末了主站发送启动更新指令,终端查验步伐数据精确性并置上更新标记,克制革新看门狗,从而使终端复位。

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

       别的,由于IAP办事代码是Thumb指令,用c步伐直接调用时须在设置编译参数ATPCS时选中Arm/ThumbInte2rworking项。由于实行IAP下令利用片内RAM顶真个32个字节空间,因此用户步伐不该该利用该空间。调用IAP成果前,要封闭PLL、MAM(存储器加快模块)部件及全部停止以及精确设置体系时钟。

       结语

       基于ARM微处理惩罚器的散布式控制体系不但进步了体系集成度,加强了体系成果和体系稳固性,并且通过其强大的处理惩罚本领和IAP技能也使得体系智能化程度进步,切合散布式控制体系的生长方向。