当前位置:首页 > 单片机 > 单片机
[导读] 采用Atmega128单片机设计的嵌入式控制器,模拟量输入通道用Atmega128片内A/D转换器,输出用AD421D/A转换器,数字量I/O通道配置高速先耦器件.用LCCavr编译器修改OSTaskStklnit()函数及其相关文件,定义

采用Atmega128单片机设计的嵌入式控制器,模拟量输入通道用Atmega128片内A/D转换器,输出用AD421D/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实现数据的接收和发送等通信任务。

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 floatFP32; //单精度浮点数

堆栈单位的定义:

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()

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

OS_CPU_SR_SAVE();OS_CPU_SR_RESTORE()

OSStartHightRdy();OSCtxSw0

OSINTCtxSw();OSTicklSR0

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

部分源代码如下:

static voidLED_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通信,移植的嵌入式实时操作系统可增强实时多任务信息处理的能力。并通过实验对本设计进行了验证。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

TrustFLEX 器件搭配可信平台设计套件,将简化从概念到生产的信任根启用过程,适用于广泛的应用领域

关键字: 控制器 闪存器件 SoC

虽然嵌入式芯片架构市场上有明确的引领者,但该行业正在快速扩张,预计未来几年将出现许多新的机会。当然,在这样的热门行业中,永远有创新技术和新产品的一席之地。

关键字: 嵌入式 处理器 RISC-V

为增进大家对压差控制器的认识,本文将对压差控制器、压差控制器原理、压差控制器的调试予以介绍。

关键字: 控制器 指数 压差控制器

无线双位充电设计通过单个控制器同时支持扩展功率协议(EPP)和磁功率协议(MPP)

关键字: 控制器 充电器 发射器

Holtek隆重推出全新一代32-bit Arm® Cortex®-M0+ 5V CAN MCU - HT32F53231/HT32F53241/HT32F53242/HT32F53252。这一系列单片机带有来自Bosc...

关键字: MCU 工业自动化 单片机

Holtek精益求精,宣布推出全新5V宽电压Arm® Cortex®-M0+ 32-bit MCU系列HT32F50431/HT32F50441/HT32F50442/HT32F50452。此系列MCU经多方位升级能满...

关键字: 单片机 智能家居 工业控制

单片机小精灵是一款针对单片机开发者的辅助工具,它集成了代码编辑、编译、调试等多项功能,旨在帮助开发者更加高效地进行单片机项目的开发。本文将详细介绍单片机小精灵的使用方法,帮助读者快速掌握这款工具,提高开发效率。

关键字: 单片机 代码编辑 辅助工具

2024年3月8日 – 专注于引入新品的全球电子元器件和工业自动化产品授权代理商贸泽电子 (Mouser Electronics) 即日起供货Advantech的VEGA-P110 PCIe Intel® Arc A37...

关键字: 嵌入式 GPU卡 边缘AI

单片机和PLC将是下述内容的主要介绍对象,通过这篇文章,小编希望大家可以对二者的相关情况以及信息有所认识和了解,详细内容如下。

关键字: PLC 单片机
关闭
关闭