《基于Atmega128嵌入式控制器的设计.docx》由会员分享,可在线阅读,更多相关《基于Atmega128嵌入式控制器的设计.docx(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于Atmega128嵌入式控制器的设计huanglj导语:采用Atmega128单片机设计的嵌入式控制器,模拟量输入通道用Atmega128片内AD转换器,输出用AD421DA转换器摘要:采用Atmega128单片机设计的嵌入式控制器,模拟量输入通道用Atmega128片内AD转换器,输出用AD421DA转换器,数字量IO通道配置高速先耦器件用lccavr编译器修改OSTaskStklnit函数及其相关文件,定义数据类型等以实现MicroCOS-的移植关键词:Atmega128;嵌入式控控制器:CANBus;MicroCOSDesignofEmbeddedControllerBasedonA
2、tmega128YUGui-jun,XIChong-huaCollegeofInformationControlEngineering,SouthwestUniversityofScienceTechnology,Mianyang621002,ChinaAbstract:EmbeddedcontrollerisdesignedwithAtmegal28single-chipADconverterinAtmegal28isadoptedinanaloginputchannelandAD421DAconverterisusedintheoutputchannel,andthehigh-speedp
3、hoto-couplerisusedindigitalinputandoutputchanne1OsTaskStklnitfunctionandcorrelativefilesaremodifiedwithIccavrcompilerDatatypeisdefinedtorealizethetransplantofMicroCOSKeywords:Atmegal28;Embeddedcontroller;CANbus;MicroCOS-嵌入式控制器是机电设备实现自动化的核心部件。故以大型机电设备为控制对象,利用高性能Atmega128微处理器,设计了具有现场总线CANBUS网络通信和一定通用性
4、的多功能嵌入式智能控制器。2硬件设计系统的硬件构造如图1。本控制器的核心采用64管脚TQFP封装的Atmega128芯片,具有53个可编程的IO引脚,片内集成有128KB闪存、4KBEEPROM和4KBSRAM,合适IO通道和存储空间的需求。1模拟量输入通道模拟量输入通道采用Atmega128片内的8通道1O位AD转换器。其信号输入局部可以根据详细的信号情况选择使用图2所示的多功能输入信号调理电路。在电压信号输入时可以由R1和C构成低通滤器R2开路;R1和R2可以构成输入信号分压电路电容c开路;对于4-20mA电流输入信号,R2使用250Q的精细电阻即可变换为15V的信号R1短路、C开路。在电
5、路版上设计有对应多功能信号调理电路焊位元件的位置,可根据需要白行选择使用。8路模拟量输入局部占用的是ATMEGA128的PF0PF7。2模拟量输出通道模拟量输出通道单元电路设计方案如图3。DA转换器采用AD公司的AD421,它是一种单片低功耗、高精度的电流输出型DAC芯片,420mA的输出可以驱动标准的执行元件。该芯片的数字接口为标准HART三线或者其它FSK协议,DAC为16位分辨率,单调性输出。采用回路供电方式,内含电源调整器为本身和外围器件供电。在工业控制中,通常输入量要多于输出量,所以只设计Atmega128的PAOPA7,PE2、PE3、PE6、PG4引脚通过4个光电隔离器6N137
6、与4个AD421相连,构成4路模拟量输出。3数字量输入输出通道数字量IO通道各配置8路高速光耦隔离通道。光耦器件选6N137,其开关延迟tpd仅75ns,而普通光耦器件开关延迟有36s。IO通道接口安排在Atmega128的PB0PB7、PD0PD7。4CAN总线接口选择独立的CAN通信控制器SJA1000、CAN总线驱动器82C250和高速光电耦合器6N137与微控制器Atmega128进展设计。微处理器Atmega128负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。CAN总线接口如图4。SJA1000的AD0AD7连接到Atmega128的PC口,CS连
7、接到Atmega128的PG3。PG3为0时CPU片外存储器地址选中SJA1000,CPU通过地址可对SJA1000执行读写操作。SJA1000的RD、WE、ALE与Atmega128的引脚相连,INT接Atmega128的PE7,Atmega128可通过中断方式访问SJA1000。5与PC机的串行通信考虑到智能控制节点要接收从RS232串口来的数据,因此采用了Atmega128的串行口进展中断接收,所用的引脚是PE0、PE1。通过MAX232进展数据传输。6脉冲输入脉冲输出由于输入信号的多样性,增加了PIPO局部。3MicroCOSII的移植MicroCOSII移植到Atmega128上,需
8、要修改OS_CPUH,OS_CPU_AS和OS_CPU_CC三个与其相关的文件。其中OSCPUH主要完成的是数据类型、堆栈单位、堆栈增长方向的定义。相关的数据类型定义:typedefunsignedcharBOOLEAN;typedefunsignedcharINT8U;无符号8位数typedefsignedcharINT8S;带符号8位数typedefunsignedintINTI6U;无符号l6位数typedefsignedintINTl6S;带符号l6位数typedefunsignedlongINT32U;无符号32位数typedefsignedlongINT32S;带符号32位数typ
9、edeffloatFP32;单精度浮点数堆栈单位的定义:typedefunsignedcharOS_STK;堆栈入口宽度为8位状态存放器的定义:typedefunsignedcharOS_CPU_SR;定义状态存放器为8位堆栈增长方向的定义:#defineOS_STK_GROWTH1;AVR堆栈由高地址向低地址增长0S_CPU_CC文件主要包括任务堆栈初始化和实现操作系统规定的几个Hook函数。其中移植需要的Hook函数如下:OSTaskCreateHook;OSTaskDelHookOSTaskldleHook;OSTaskStateHookOSTaskSwHook;oSTCBInitHoo
10、kOSTimeTickHook移植所需的OSCPU-As中的函数有:OS_CPU_SR_SAVE;OS_CPU_SR_RESTOREOSStartHightRdy;OSCtxSw0OSIntCtxSw;OSTicklSR0应用移植后的嵌入式操作系统对控制器进展验证,选取PB0PB7作为输入,PD0PD7作为输出,实现了二极管的发光演示。局部源代码如下:staticvoidLED_ToggleINT8Uled#ifOS_CRITICAL_METHOD=3/AllocatestorageforCPUstatusregisterOS_CPU_SRcpu_sr;#endifOS_ENTER_CRITI
11、CAI:switck1edcasc1:PORTD=0x01;break;case2:PORTD=0x02;break;case3:PORTD=0x04;break;case4:PORTD=0x08;break;OS_EXIT_CRITICAl;应用Atmega128设计的嵌入式控制器能完成多功能数据收集与控制,CAN总线和RS232通信,移植的嵌入式实时操作系统可增强实时多任务信息处理的才能。并通过实验对本设计进展了验证。参考文献:1耿德根,宋建国,马湖,等AVR高速嵌入式单片机原理与应用修订版IM1北京:北京航空航天大学出版社,20022邵贝贝,等uCOSII源码公开的实时嵌入式探作系统M北京:中国电力出版社,20013饶运涛,邹继军,郑勇芸现场总线CAN原理与应用技术M北京:北京航空航天大学出版社,2003