基于Atmega128嵌入式控制器的设计

发布者:精品古钱斋最新更新时间:2014-01-07 来源: eefocus关键字:Atmel  AVR  Atmega128  嵌入式控制器 手机看文章 扫描二维码
随时随地手机看文章

  采用Atmega128单片机设计的嵌入式控制器,模拟量输入通道用Atmega128片内A/D转换器,输出用AD421 D/A转换器,数字量I/O通道配置高速先耦器件.用lccavr编译器修改OSTaskStklnit()函数及其相关文件,定义数据类型等以实现MicroC/OS-Ⅱ的移植.

1 引言

  嵌入式控制器是机电设备实现自动化的核心部件。故以大型机电设备为控制对象,利用高性能Atmega 128微处理器, 设计了具有现场总线(CANBUS)网络通信和一定通用性的多功能嵌入式智能控制器。


2 硬件设计

  系统的硬件结构如图1。



  本控制器的核心采用64管脚TQFP封装的Atmega128芯片,具有53个可编程的I/O引脚,片内集成有128KB闪存、4KB EEPROM 和4KBSRAM,适合I/O通道和存储空间的需求。


(1)模拟量输入通道

  模拟量输入通道采用Atmega128片内的8通道1O位A/D转换器。其信号输入部分可以根据具体的信号情况选择使用图2所示的多功能输入信号调理电路。在电压信号输入时可以由R1和C构成低通滤器(R2开路);R1和R2可以构成输入信号分压电路(电容c开路);对于4-20mA电流输入信号,R2使用250Q的精密电阻即可变换为1~5V的信号(R1短路、C开路)。在电路版上设计有对应多功能信号调理电路焊位元件的位置,可根据需要白行选择使用。8路模拟量输入部分占用的是ATMEGA128的PF0~PF7。



(2)模拟量输出通道

  模拟量输出通道单元电路设计方案如图3。D/A转换器采用AD公司的AD421,它是一种单片低功耗、高精度的电流输出型DAC芯片,4~20mA 的输出可以驱动标准的执行元件。该芯片的数字接口为标准HART (三线)或其它FSK协议,DAC为16位分辨率,单调性输出。采用回路供电方式,内含电源调整器为本身和外围器件供电。在工业控制中,通常输入量要多于输出量,所以只设计Atmega128的PAO~PA7,PE2、PE3、PE6、PG4引脚通过4个光电隔离器(6N137)与4个AD421相连,构成4路模拟量输出。


(3)数字量输入/输出通道

  数字量I/O通道各配置8路高速光耦隔离通道。光耦器件选6N137,其开关延迟tpd仅75ns,而普通光耦器件开关延迟有3~6μs。I/O通道接口安排在Atmega128的PB0~PB7、PD0~PD7。


(4)CAN总线接口

  选择独立的CAN通信控制器SJA1000、CAN总线驱动器82C250和高速光电耦合器6N137与微控制器Atmega128进行设计。微处理器Atmega128负责SJA1000的初始化,通过控制SJA1000实现数据的接收和发送等通信任务。[page]


  CAN总线接口如图4。SJA1000的AD0~AD7连接到Atmega128的PC 口,CS连接到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)脉冲输入脉冲输出

  由于输入信号的多样性,增加了PI/PO部分。


3 Micro C/OS—II的移植

  Micro C/OS—II移植到Atmega128上,需要修改OS_CPU.H,OS_CPU_A.S和OS_CPU_C.C三个与其相关的文件。其中OS—CPU.H主要完成的是数据类型、堆栈单位、堆栈增长方向的定义。相关的数据类型定义:


  typedef unsigned char BOOLEAN;


  typedef unsigned char INT8U; //无符号8位数


  typedef signed char INT8S; //带符号8位数


  typedef unsigned int INTI6U; //无符号l6位数


  typedef signed int INTl6S; //带符号l6位数


  typedef unsigned long INT32U; //无符号32位数


  typedef signed long INT32S; //带符号32位数


  typedef float FP32; //单精度浮点数


  堆栈单位的定义:


typedef unsigned char OS_STK;//堆栈入口宽度为8位


  状态寄存器的定义:


  typedef unsigned char OS_ CPU_SR;//定义状态寄存器为8位


堆栈增长方向的定义:


  #define OS_STK_GROW TH 1;//AVR堆栈由高地址向低地址增长


  0S_CPU_C.C 文件主要包括任务堆栈初始化和实现操作系统规定的几个Hook函数。其中移植需要的Hook函数如下:


  OSTaskCreateHook();OSTaskDelHook()


  OSTaskldleHook();OSTaskStateHook()


  OSTaskSwHook();oSTCBInitHook()


  OSTimeTickHook()[page]


移植所需的OS— CPU-A.s中的函数有:


  OS_CPU_SR_SAVE();OS_CPU_SR_RESTORE()


  OSStartHightRdy();OSCtxSw0


  OSIntCtxSw();OSTicklSR0


  应用移植后的嵌入式操作系统对控制器进行验证,选取PB0~PB7作为输入,PD0~PD7作为输出,实现了二极管的发光演示。


  部分源代码如下:


static void LED_Toggle(INT8U led)



#if OS_CRITICAL_M ETHOD = = 3


  //Allocate storage for CPU status register


  OS_CPU_SR cpu_sr;


#endif


  OS_ENTER_CRITICAI ():


  switck(1ed)


  {casc 1:PORTD⌒=0x01;break;


  case 2:PORTD⌒= 0x02;break;


  case 3:PORTD⌒= 0x04;break;


  case 4:PORTD⌒= 0x08;break;


  }


  OS_EXIT_CRITICAl ();



4 结语

  应用Atmega128设计的嵌入式控制器能完成多功能数据采集与控制,CAN总线和RS232通信,移植的嵌入式实时操作系统可增强实时多任务信息处理的能力。并通过实验对本设计进行了验证。

关键字:Atmel  AVR  Atmega128  嵌入式控制器 引用地址:基于Atmega128嵌入式控制器的设计

上一篇:基于ATMega16单片机的密码锁的设计
下一篇:基于单片机及MODEM的MTU、RTU无线电遥测系统

推荐阅读最新更新时间:2024-03-16 13:33

avr定时器/计数器1 --TC1 --输入捕捉模式 (捕获外部事件模式)
T/C 的输入捕捉单元可用来捕获外部事件,并为其赋予时间标记以说明此时间的发生时刻。外部事件发生的触发信号由引脚ICP1 (PD6)输入,也可通过模拟比较器单元来实现。时间标记可用来计算频率、占空比及信号的其它特征,以及为事件创建日志。当引脚ICP1 上的逻辑电平( 事件) 发生了变化,或模拟比较器输出ACO 电平发生了变化,并且这个电平变化为边沿检测器所证实,输入捕捉即被激发:16 位的TCNT1 数据被拷贝到输入捕捉寄存器ICR1,同时输入捕捉标志位ICF1 置位。如果此时ICIE1 = 1,输入捕捉标志将产生输入捕捉中断。中断执行时ICF1 自动清零,或者也可通过软件在其对应的I/O 位置写入逻辑 1” 清零。读取ICR1
[单片机]
AVR单片机中断的学习探究(外部中断与内部中断)
最开始的一点,所有中断的配置都必须要打开全局中断控制#asm(“sei”) //打开SREG的全局使能I置位 首先博主先探究了一下AVR单片机的外部中断。 外部中断需要用的必须先看原理图的INT0 INT1的引脚。因为外部中断是通过这两个引脚来触发,只要使能引脚,而且配置引脚为输出方式,电平如果发生合适的变化(具体通过高低电平还是上升沿下降沿控制是通过MCUCR寄存器来控制),中断便会触发。 配置外部中断相应的寄存器初始化的步骤--写在init.c中: (1)还是第一点,打开全局中断使能位; (2)配置MCUCR寄存器,通过控制寄存器的位数来控制具体由什么信号来触发中断; (3)配置通用中断控制寄存器 GICR:控制哪一个外部中
[单片机]
基于AVR单片机Megal6的电子时钟设计
1 引言   数字钟能长期、连续、可靠、稳定地工作;同时还具有体积小,功耗低等特点,便于携带,使用方便。数字钟是采用数字电路实现对“时、分、秒”数字显示的计时装置,广泛应用于个人家庭、车站、码头、办公室等公共场所,已成为人们日常生活中不可缺少的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。传统MCS51系列单片机的所有数据处理都基于一个累加器,因此累加器与程序存储器、数据存储器之间的数据转换就成了单片机的瓶颈;在AVR单片机中,寄存器由32个通用工作寄存器组成,并且任何一个寄存器都能充当累加器,从
[单片机]
基于<font color='red'>AVR</font>单片机Megal6的电子时钟设计
AVR单片机产生随机数
, 星星灯 源程序:SLAVR737.ASM 用AVR单片机8位数据产生随机数,由PORTA 口及PORTC 口输出随机数,在8X8 LED上显示,硬件接线电路见“7.3.8按钮猜数”。随机数的种子由程序设定(也可外接开关设定),启动种子后,由移位寄存器以互斥的异或逻辑组合返回循环产生。 .include"8515def.inc" rjmp RESET .def temp =r16 ;暂存器 .def temp1 =r17 ;暂存器1 .def udata =r21 ;存随机数送A口 .def ddata =r22 ;存随机数送C口 .cseg .org 0x10 RESET: ldi temp,high(RAMEND);设堆栈
[单片机]
AVR单片机密码锁程序(原创)
这是一款用AVR单片机实现的密码锁,它分别由硬件16个矩阵键盘、数码管以及蜂鸣器组成的。系统正确的初始密码为0、1、2、3。当我们按下按键次数在4次以内,系统才判断密码对与否,当输入密码正确时,蜂鸣器报响起,即表示密码是正确的,当我们按下按键的次数超过4次,即使按下的密码正确,蜂鸣器也不响,还有按下密码顺序必须是0、1、2、3,如果按下0、2、1、3或者是其它的,都不能正常开蜂鸣器。如果按键次数超过4次了,密码就无法正常输入了,此时只要按下第16个按键时,就可以回到初始状态,即清除我们以前按键按下的次数,(因为密码输入时必须在4次以内完成的,超过了4次你怎么输,也进入密码判断模式)此时就可以重新输入正确的密码了。另外当按下按键时,可
[单片机]
基于AVR的高精度CPSMc究
1 引言 目前,高频感应加热电源的功率调节具有直流侧调功和逆变侧调功两种方式。逆变侧调功方式有:脉冲频率调制、移相调功、脉冲密度调制。但在轻载的情况下,以上方法会导致功率因数下降或输出电流波动等情况。脉冲均匀密度调制(PSM)利用串联谐振负载储能,通过控制单位时间内开通和关断的脉冲信号比例来调节输出功率,并使脉冲信号均匀分布。即使在轻载时,逆变器输出电流波动也很小,且输出频率不变,功率因数始终接近1,因此得到了较广泛的应用。但传统的PSM实现方式由逻辑门电路构建,结构复杂,且其精度等级只能达到1/16,难以适应高精度感应加热场合。而单纯采用软件设计的方法,由于PSM控制算法复杂,难以提高逆变器工作频率,且存在延迟失真现象。
[单片机]
基于<font color='red'>AVR</font>的高精度CPSMc究
基于CORBA技术的嵌入式控制器设计
重矿行业是典型的装备制造业,它的生产设备组成相对较为分散,设备现场环境较为恶劣,不易控制。传统的工业控制器只是对现场的设备进行监控,如果设备运行异常则关断设备,这样就大大降低了生产效率。而且,随着设备结构及其控制的日益复杂化,在控制的过程中可能存在不同的网络协议、不同的操作系统以及不同的编程语言。在实现它们相互之间通信的时候,需要将格式和协议进行转换,这就给我们开发控制器带来了诸多不便。CORBA技术具有良好的跨平台互操作性、可移植性、可扩展性和编程语言无关性,解决了异构平台的对象互操作问题。它屏蔽了底层的通信机制,采用面向对象的方法以提供分布式应用软件的可重用性和可扩展性,实现了异构环境下通信.这样既大大简化了分布式应用系统的开
[模拟电子]
基于CORBA技术的<font color='red'>嵌入式</font><font color='red'>控制器</font>设计
Atmel推出基于ARM技术的32位微控制器
在本届“国际集成电路研讨会暨展览会/嵌入式系统研讨会”(IIC/ESC China 2006)上,Atmel公司重点介绍了AT91SAM9261微控制器。该产品是Atmel基于ARM技术的32位微控制器系列中的最新型号。此外,Atmel公司还向与会者展示同系列的下一代型号——AT91SAM9260。 AT91SAM9261 AT91SAM9261是一款以ARM926EJ-S处理器为核心的超低功耗“确定过程式”(deterministic)微控制器。该型号专为功耗低、数据吞吐量大的无线手持式应用(例如无线销售终端(point-of-sale, PoS)设备)市场而开发的,其待机电流仅为2.5uA;工作频率500Hz时,电流消耗则
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved