嵌入式硬件设计论文

2024-09-17

嵌入式硬件设计论文(通用12篇)

嵌入式硬件设计论文 篇1

在视频数据的传输中, 因为每行消隐期间数据 (“SAV”和“EAV”) 相同, 所以将此予以界定为接收端恢复的标志, 在“EAV”和“SAV”之间放置的288个字就可以用来作为辅助数据 (包括“EAV”和“SAV”的8个字) 。因此, 数字视频的行消隐期间中被称为行辅助数据区“HANC” (HorizontalAnicillaryData) 。

1 ARM嵌入式系统

在数字视频的场或帧辅助数据区, 由EBU定义为“VANC” (Vertical Anicillary Data) 。我国广播电影电视行业标准GY/T160-2000《数字分量演播室接口中的附属数据信号格式》, 是等效采用ITU-RBT1364建议书标准, 规定了数字分量演播室应用的嵌入到视频数据信号中的辅助数据格式, 如图1所示。

根据SMPTE291M标准定义对辅助数据包和空间格式的界定为以下序列:

分量视频数据信号的运载形式是以数据包站爱的, 这种辅助数据区中的数据包对于整个整体来说有很大的意义, 而且分量数据信号在整个辅助数据包内不能随意放置, 每个包的包头都有标识, 容易被识别, 而且根据不同的标准, 在数字视频的串行数据流中有不同的通道, 最多可以同时发送16个通道的信号, 还同时可以对于20或24比特的声音信号进行同时运载。这些串行数据一般都会在EAV后紧紧的存放, 不能发生孔隙, 孔隙会产生误差, 而且对于检测信号来说, 就会产生错误的警报, 而导致程序减慢, 所以行辅助数据区的剩余部分要让其他的数据使用, 不能有空行等发生。

2 嵌入式的规则和方法

目前辅助数据中用途最多的就是对于音频的放置, 也就是嵌入音频, 这种方法都是用于电视的视频和音频的系统, 最大的有点就是对于电视信号的传输中音画同步的传输和协调, 而且因为嵌入音频的和视频可以用同一根电缆进行传输, 所以设备系统的简化程度大大增加了。

音频信号先打包传送, 以192个连续帧组成的一个块为一次打包传送的单位, 这其中每个帧代表着一个音频通道, 每个帧的两个子帧用来放置一个音频取样字, 所以仅仅一个数字音频的码就可以作为立体声、双声道模式使用, 起作用不容小觑。

每个帧包含两个子帧, 每个子帧都有4比特的前置码, 24比特的音频数据。在数据位后的4比特, 分别是有效标志位V (Validity) , 用户数据位U (UserData) , 通道状态位C (ChannelStatus Data) 和子帧的奇偶校验位P (Parity) 。帧的传输速率与源取样频率要严格对应。

数字音频数据的嵌入实际上就是将其看成是附属数据与数字视频数据何为一路的过程, 在信息系统上也认为这实际上是采用的时分复用的方法来进行的。

对于辅助数据区域内的位置都可以进行嵌入式音频的放置, 但是在放置的过程中要对于标准进行严格的规定和嵌入, 而且最多要在16个通道平行放置好音频数据时, 要对于通道进行划分, 一般划分为4组, 每个组的含量就是两队, 通过这两对来进行音频的防止, 并且进行传送AES/EBU音频信息的放置, 这两种附属数据包即音频数据包和音频控制包, 他们的异同在于, 均符合下表所示的附属数据包的格式, 但是在用户数据部分和相关的标识符上两者存在着很大的区别。

表1是音频数据包和音频控制包的用户数据标识字。可以看出, 通过DID字, 既可以识别音频数据包和控制数据包, 也可以区分同一类型音频包中的不同音频组。

音频数据包中携带有数字音频的样值数据, 按照标准规定, 它放置在CB/CR色差信号并行数据流的行附属数据区内。音频控制包中所含数据则用于音频数据流的解码处理, 每场仅传送一次。有关音频数据的嵌入过程和这两种音频包的具体结构, 下面分别予以介绍。

图2表示了音频数据的嵌入过程。因为文章的篇幅和重心, 所以笔者在这里只画出了一个通道对 (AES/EBU 1为第一通道对, AES/EBU2为第二个通道对) 中一个通道的嵌入示意, 通道对3、4的嵌入完全相同。音频控制包的作用是为接收端提供必要的解码信息, 如音频通道对的取样频率和同步/异步指示、通道的有效性指示以及通道对音频/视频时延等。

音频控制包在第二个行辅助数据区内, 而且在切换点之后放置, 一般会处在奇数的第8行和偶数场的第321行。每场传送一次, 音频控制包中含有音频帧序号、取样频率和各通道音频/视频间的相对时延等信息, 对于48KHz同步运行模式, 音频控制包的传送是可选的, 但对其他运行模式, 则是必需的。

3 结论

而且基于FPGA的嵌入式处理器 (如Nios II) 的适用性非常广, 大部分多媒体产品, 可以说对于从最小的消费产品到最大的专业视频产品的各类多媒体系统都需要这个产品, 基于FPGA的嵌入式处理器 (如Nios II) 向设计者提供了灵活地定制各种要求的能力, 所以也是深受大公司欢迎的产品。

摘要:本系统主要实现了音视频数据的实时采集、实时处理、网络传输等功能, 采用FPGA接收实时数字音视频流, 对数据进行存储和检测操作, 如无声静帧、黑场、彩场、音频杂音检测等, 然后将预处理后的音视频数据传送到DSP做进一步处理。

关键词:ARM分析,嵌入式,硬件

参考文献

[1]李宁.HD-SDI信号的特征及检测方法的提案[J].现代电视技术, 2004.

[2]刘常杰.基于FPGA高速视觉检测系统的研究[J].仪器仪表学报, 2001.

[3]夏宇闻.Verilog HDL程序设计与应用[M].北京:人民邮电出版社, 2005.

[4]TexasInstrumentsIncorporated著.王军宁, 何迪, 马娟等编译.TI DSP/BIOS用户手册与驱动开发.清华大学出版社, 2004.

[5]ALTERA器件选型手册[Z].

[6]寇锦.非线性编辑系统中常见的外部数字接口[J].中国有线电视, 2002.

嵌入式硬件设计论文 篇2

班 级:学 号:姓 名:成 绩:指导教师:

20090612 2009112107 侯金钟 武俊鹏、刘书勇 1.实验一

1.1 实验名称

嵌入式系统硬件开发环境

1.2 实验目的

1.熟悉UP-net3000实验平台。

2.超级终端设置及BIOS 功能使用。

1.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

1.4 实验内容及要求

熟悉UP-net3000实验平台的硬件电路和外设,ARM JTAG的安装和使用,利用超级终端检验外设的工作状态。

1.5 实验设计与实验步骤

1.建立工程

(1)运行ARM SDT 2.5 集成开发环境(ARM Project Manager).(2)在新建的工程中,如图1A-2 所示,选中工程树的“根部”。

(3)因为开发板上的嵌入式处理器ARM7TDMI 没有浮点处理器,所以,如图1A-3 所

示,在弹出的对话框中设置Floating Point Processor 为none,并保持其他的设置不变。(4)选中工程树的“根部”,通过菜单Project | Tool Configuration for work1.apj | asmlink | Set,对整个工程的连接方式进行设置。(5)在弹出的对话框中,选中Entry and Base 标签,如图1A-4 所示,设置连接的Read-Only(只读)和Read-Write(读写)地址。

(6)选择Linker Configuration 的ImageLayout 标签,(7)选择Project | Edit Project Tamplete 菜单,弹出Project Template Editor 对话框。

(8)选择Project | Edit Variables for work1.apj,弹出Edit Variables for work1.apj 对话框。

2.进行程序的在线仿真、调试

1.6 实验过程与分析

熟悉UP-net3000实验平台的硬件电路和外设,安装了ARM JTAG,利用超级终端检验了外设的工作状态。

1.7 实验结果总结

软件安装成功,结果显示正常。

1.8 心得体会

通过此次试验,我对ARM的环境的功能有一定的了解与完善。对试验台有了基本的认识与使用。

2.实验二

2.1 实验名称

嵌入式系统软件开发环境

2.2 实验目的

1.熟悉ADS1.2 开发环境,学会ARM 仿真器的使用。

2.使用ADS 编译、下载、调试并跟踪一段已有的程序,了解嵌入式开发的基本思想和过程。

2.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

2.4 实验内容及要求

本次实验使用ADS 集成开发环境。新建一个简单的工程文件,并编译这个工程文件。学习ARM 仿真器的使用和开发环境的设置。下载已经编译好的文件到嵌入式控制器中运行。学会在程序中设置断点,观察系统内存和变量。

2.5 实验设计与实验步骤

(1)运行ADS1.2 集成开发环境(CodeWarrior for ARM Developer Suite)。

(2)在新建的工程中,选择Debug 版本,使用Edit | Debug Settings菜单对Debug 版本进行参数设置。(3)在Debug Settings 对话框中选择Target Settings 项。在Post-linker一栏中选择ARM from ELF。

(4)在Debug Settings 对话框中选择ARM Linker 项

(5)在第四步中如果选择简单的地址连接设置,在Debug Settings 对话框中选择ARM Linker 项

(6)回到的工程窗口中,选择Release 版本,使用Edit | Release Settings 菜单对Release 版本进行参数设置。(7)参照第(3)、(4)、(5)、(6)步在Release Settings 对话框中设置Release版本的Post-linker、连接地址范围、入口模块和输出文件。(8)回到如图1B-3 所示的工程窗口中,选择Targets 选项卡,如图1B-11 所示。选中DebugRel 版本,按Del 键将其删除。DebugRel 子树是一个折衷版本,通常用不到,所以在这里删除。

2.6 实验过程与分析

1)回到工程窗口选中Debug 版本,执行菜单Project | Make 对工程进行编译连接。(2)在ADS 中执行菜单Project | Debug 启动ADS1.2 的调试工具AXD。(3)在AXD 中执行菜单Options | Configure Target 对AXD 进行设置。(4)点Select 按钮选择远程连接为ARM ethernet driver,点Configure 按钮输入仿真器的IP 地址。

(5)等待程序装载完毕以后,通过Execute | Go 菜单以及Execute | Stop(或者工具栏中的相应按钮)运行或暂停程序。程序暂停后在窗口中将显示出程序暂停的位置。(6)通过Execute | Step 菜单(或者工具栏中的相应按钮)可以单步运行程序。

(7)程序停止后可以通过Processor Views | Sources 菜单查看源文件,并可在适当位置按F9 设置端点。

(8)使用在Processor View 菜单下的Registers、Variables 和Memory 命令可以查看工作寄存器或者内存变量。读者可以逐一地尝试,为以后调试程序打下基础。

2.7 实验结果总结

超级终端输出“Hello World!”。

2.8 心得体会

基本了解了ADS1.2的配置条件,学会了ARM仿真器的使用方法。

3.实验三

3.1 实验名称

键盘及LED实验

3.2 实验目的

1.学习键盘及LED 驱动原理。

2.掌握ZLG7289芯片串行接口的使用方法,用ZLG7289芯片驱动17键的键盘和8个共阴极LED。

3.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

3.4 实验内容及要求

通过ZLG7289芯片驱动17键的键盘和8个共阴极LED,将按键值在LED上显示出来。要求从右至左循环显示至少四位数字。

基本功能实现之后可考虑实现从左至右显示四位及四位以上数字(最大八位),并可设置清零键等扩展功能。

3.5 实验设计与实验步骤

利用所给的基础代码进行调试,观察输出结果,结合指导书和教材掌握基本原理和源代码的编写方式。根据实验的要求设计函数流程,并反复调试,实现功能。1.新建工程,将“Exp3 键盘及LED 驱动实验”中的文件添加到工程。2.定义ZLG7289 寄存器(ZLG7289.h)

#define ZLG7289_CS(0x20)//GPB5 #define ZLG7289_KEY(0x10)//GPG4 #define ZLG7289_ENABLE()do{ZLG7289SIOBand=rSBRDR;ZLG7289SIOCtrl=rSIOCON;rSIOCON=0x31;rSBRDR=0xff;rPDATB&=(~ZLG7289_CS);}while(0)#define ZLG7289_DISABLE()do{rPDATB|=ZLG7289_CS;rSBRDR=ZLG7289SIOBand;rSIOCON=ZLG7289SIOCtrl;}while(0)3.编写ZLG7289 驱动函数(ZLG7289.c)4.定义键盘映射表:(Keyboard16.c)

unsigned char KeyBoard_Map[]= {4,8,11,0,0,0,0,0,5,9,12,15,1,0,0,0,6,10,13,16,2,3,0,0,7,0,14,0,0,0,0,0,0 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};//64 键值映射表,通过查找键盘映射表来确定键盘扫描码对应的按键值。

5.定义键值读取函数。(Keyboard16.c)6.编写主函数,将按键值在数码管上显示。

3.6 实验过程与分析

利用键盘驱动函数实现基本数字输入,然后利用循环左移函数实现输入数字做一样功能,并通过改变函数中相应delay的值来消除键盘按键带来的抖动。

3.7 实验结果总结

按键值可以在LED上显示出来。要求从右至左循环显示八位数字,同时可以复位清零。达到实验的效果。

3.8 心得体会

通过本次实验,我了解了LED的显示屏幕的数字的移位功能,这个功能不止可以用一个方法实现,而循环左移是其中比较巧妙且省力的一种,在遇到类似情况的时候,可以优先考虑能不能利用到文件中已经存在的函数,这样可以不必自己编写函数,省时省力。是一种可靠的方法。4.实验四

4.1 实验名称

电机转动控制及中断实验

4.2 实验目的

1.熟悉ARM本身自带的六路即三对PWM,掌握相应寄存器的配置。

2.编程实现ARM系统的PWM输出和I/O输出,前者用于控制直流电机,后者用于控制步进电机。

3.了解直流电机和步进电机的工作原理,学会用软件的方法实现步进电机的脉冲分配,即用软件的方法代替硬件的脉冲分配器。

4.了解44B0处理器上中断的应用。5.学习在44B0处理器上中断的应用。

6.进一步熟悉平台外围硬件及其驱动程序的编写。

4.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

4.4 实验内容及要求

1.学习步进电机和直流电机的工作原理,了解实现两个电机转动对于系统的软件和硬件要求。学习ARM 知识,掌握 PWM 的生成方法,同时也要掌握 I/O的控制方法。

2.编程实现ARM芯片的一对PWM输出用于控制直流电机的转动,通过A/D旋钮控制其转动方式。

3.编程实现ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

4.通过键盘控制直流电机与步进电机的切换。5.设置并启动定时器。

6.设置中断,编写定时器中断服务程序,对中断次数进行计数并在LED上显示结果。

4.5 实验设计与实验步骤

1.添加并打开工程。

2.进行直流电机初始化设置和代码编写。3.进行步进电机初始化设置和代码编写。

4.对Timer3编程,编写定时器中断服务程序,完成对中断次数的计数。5.编写LED计数显示函数,使LED能正确计数并显示0-9999。6.编写中断初始化函数和中断响应函数。7.终端下载测试。

4.6 实验过程与分析 1.对直流电机进行编程和测试,掌握转速和旋转方向的设定方法。

2.对步进电机进行编程和测试,掌握ARM的四路I/O通道,实现环形脉冲分配用于控制步进电机的转动,通过A/D旋钮控制步进电机的转角。

3.对主函数进行编程,用键盘响应直流电机与步进电机的切换控制。

4.掌握中断相关语句的应用,弄清定义的中断向量、中断向量号,编写中断响应函数,并完成中断响应控制。

4.7 实验结果总结

实现了直流电机与步进电机的基本设置和控制,可以通过键盘控制电机之间的切换。完成了中断的响应和定时中断。当对其中一个旋钮转动时,就可以由直流电机转换成步进电机的转换,达到实验的效果。

4.8 心得体会

通过本次实验,我了解了直流电机和步进电机的工作原理,同时也知晓了电机间的转换过程,了解其中的道理内涵,熟悉了ARM自带的A/D转换器的工作原理及编程方法,了解了中断的意义和实现方法,实现了简单了中断处理程序。同时我也收获了很多关于ARM处理机的相关知识。

5.实验五

5.1 实验名称

触摸屏驱动实验

5.2 实验目的

1.了解触摸屏的基本概念与原理。

2.理解触摸屏与LCD的关系。3.编程实现对触摸屏的控制。

4.熟悉用 ARM 内置的 LCD控制器驱动 LCD。

5.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

5.4 实验内容及要求

1.了解触摸屏基本原理,理解对触摸屏进行输出标定、与LCD显示器配合的过程。2.通过编程实现触摸两点自动在两点间划直线。3.通过编程实现在触摸屏上动态画出曲线。5.5 实验设计与实验步骤

1.添加并打开工程。

2.在头文件中定义宏和常量及驱动函数。

#define ADS7843_CTRL_START 0x80 #define ADS7843_GET_X 0x50 #define ADS7843_GET_Y 0x10 #define ADS7843_CTRL_12MODE 0x0 #define ADS7843_CTRL_8MODE 0x8 #define ADS7843_CTRL_SER 0x4 #define ADS7843_CTRL_DFR 0x0 #define ADS7843_CTRL_DISPWD 0x3 // Disable power down #define ADS7843_CTRL_ENPWD 0x0 // enable power down #define ADS7843_PIN_CS(1<<6)//GPF6 #define ADS7843_PIN_PEN(1<<5)//GPG5 /////////触摸屏动作//////// #define TCHSCR_ACTION_NULL 0 #define TCHSCR_ACTION_CLICK 1 //触摸屏单击 #define TCHSCR_ACTION_DBCLICK 2 //触摸屏双击 #define TCHSCR_ACTION_DOWN 3 //触摸屏按下 #define TCHSCR_ACTION_UP 4 //触摸屏抬起 #define TCHSCR_ACTION_MOVE 5 //触摸屏移动

#define TCHSCR_IsPenNotDown()(rPDATG&ADS7843_PIN_PEN)(ADS7843_CTRL_START|ADS7843_GET_X|ADS7843_CTRL_12MODE |ADS7843_CTRL_DFR|ADS7843_CTRL_ENPWD)//采样x 轴电压值,数据为12 位,参考电压输入模式为差分模式,允许省电模式

#defineADS7843_CMD_Y(ADS7843_CTRL_START|ADS7843_GET_Y|ADS7843_CTRL_12MODE |ADS7843_CTRL_DFR|ADS7843_CTRL_ENPWD)int TchScr_Xmax=1840,TchScr_Xmin=176, TchScr_Ymax=195,TchScr_Ymin=1910;//触摸屏返回电压值范围 #defineADS7843_CMD_X 3.校准触摸屏坐标,进行坐标转换。

4.实现触屏取点并显示功能。

将触摸动作及触摸点坐标在超级终端上显示出来。5.实现两点间自动划线功能。6.实现触摸屏动态划线功能。

可以使用TchScr_GetScrXY()函数(第三个参数为0)来获得液晶屏的x、y 方向的电压

范围,分别点触摸屏有效面积的左上角和右下角,得到下列参数:

TchScr_Xmax=1840;TchScr_Xmin=176;TchScr_Ymax=195;TchScr_Ymin=1910;//此数值仅供参考,请以实际校对为准

5.6 实验过程与分析 1.在定义触屏响应功能的函数中对点击触屏进行响应函数的修改,在其中添加修改点颜色的函数,修改得到的触摸点的颜色,并显示在LCD上。

2.获取第一个点坐标并储存,获取第二个点坐标并储存,由编写的划线函数取得储存的两点间直线上所有点的坐标,并对其改变颜色,显示在LCD上,即完成划直线功能。

3.将划线函数应用到响应触屏移动消息的函数下,即可对连续获得的触摸坐标进行连续的画短直线,连接成曲线,完成动态划线功能。

5.7 实验结果总结

了解了触摸屏响应动作消息的函数的工作原理,通过修改实现了触摸屏响应不同动作进行画点、划线、动态划线的功能。验证触摸屏的灵敏度的实验。

5.8 心得体会

通过这次实验,我基本掌握了通过编程驱动触摸屏以及触摸屏响应时间,实现了触摸屏对不同动作消息的响应。同时也知晓了在触摸屏上的描点画线的实现,但是由于不知名的原因,描点画线的误差较大,位置偏差较大,同时触摸屏有时会不灵敏,出现时好时坏的现象,但是由于我们的辛勤钻研,最终克服了这个困难,实现了最后的触摸屏的实现。

6.实验六

6.1 实验名称

UCOS-Ⅱ在ARM微处理器上的裁剪

6.2 实验目的

1.了解UCOS-Ⅱ内核的主要结构。

2.掌握UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法。3.学习如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪。

4.通过对UCOS-Ⅱ配置文件(OS_CFG.H)中相关的配置常量进行设置,实现对UCOS-Ⅱ的裁剪。

6.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

6.4 实验内容及要求

对UCOS-Ⅱ内核进行裁剪并移植到ARM7微处理器上。

6.5 实验设计与实验步骤 1.按照要求,载入STARTUP目录下文件,完成系统初始化、环境配置。2.载入UCOS-Ⅱ的全部源码,与处理器架构相关的文件位于arch目录下。3.在os_cpu.h中编写与处理器和编译器相关的代码。

4.编写os_cpu_c.c等6个与操作系统相关的函数。5.编写os_cpu.asm等4个与处理器相关的函数。

6.6 实验过程与分析

按照实验步骤进行,得到了需要的系统。

6.7 实验结果总结

按照要求进行了裁剪,得到了满足需要又紧凑的应用软件系统。

6.8 心得体会

通过本次实验,我了解了UCOS-Ⅱ内核的主要结构,掌握UCOS-Ⅱ裁剪的基本原理与嵌入式编程实现方法,学会了如何根据具体情况对UCOS-Ⅱ操作系统进行裁剪。

7.实验七

7.1 实验名称

UCOS-Ⅱ在ARM微处理器上的移植和编译

7.2 实验目的

1.了解UCOS-Ⅱ内核的主要结构。

2.掌握将UCOS-Ⅱ内核移植到ARM7处理器上的基本方法。

7.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

7.4 实验内容及要求

1.将UCOS-Ⅱ内核进行移植到ARM7微处理器上。

2.编写两个简单任务,在超级终端上观察两个任务的切换。

7.5 实验设计与实验步骤

1.该实验的文件分为两类,其一是 STARTUP 目录下的系统初始化、配置等文件,其二是 UCOS-Ⅱ的全部源码,arch 目录下的 3 个文件是和处理器架构相关的。

2.设置 os_cpu.h 中与处理器和编译器相关的代码。

3.用 C 语言编写 6 个操作系统相关的函数(OS_CPU_C.C)。4.用汇编语言编写 4 个与处理器相关的函数(OS_CPU.ASM)。5.编写一个简单的多任务程序来测试一下移植是否成功。6.编译并下载移植后的 UCOS-Ⅱ。

7.6 实验过程与分析

1.按照实验步骤进行,将µC/OS-II 内核移植到了ARM7 微处理器上。2编写了两个简单任务,在超级终端上观察两个任务的切换。

7.7 实验结果总结

将µC/OS-II 内核顺利移植到了ARM7 微处理器上。

7.8 心得体会

通过本次实验,使我更加了解了µC/OS-II 内核的主要结构,掌握了ARM的C语言和汇编语言的编程方法,了解了ARM7处理器结构,掌握了将µC/OS-II 内核移植到ARM 7 处理器上的基本原理与嵌入式编程实现方法。

8.实验八

8.1 实验名称

综合实验

8.2 实验目的

对前七次实验进行总结,应用之前所学的知识,将前几次实验内容结合起来,完成键盘,LED,触摸屏,直流电机,步进电机各种功能的组合。实现一个较为全面的功能结构。

8.3 实验环境

硬件:ARM 嵌入式开发平台、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentium100 以 上、串口线。

软件:PC 机操作系统win98、Win2000 或WinXP、ARM SDT 2.51 或ADS1.2 集成开发 环境、仿真器驱动程序、超级终端通讯程序。

8.4 实验内容及要求

对前七次实验进行总结,应用之前所学的知识,完成自拟的嵌入式系统,要求综合前期基础实验的各种功能。

8.5 实验设计与实验步骤

1.添加并打开工程。2.进行LCD设计,在LCD显示屏输出文本。

3.进行LED及键盘设计,完成LED输出显示功能和键盘输入功能。4.进行电机控制设计,完成键盘控制电机转动功能。5.进行中断设计,完成定时中断功能。

6.进行触摸屏设计,完成触摸屏感应和划线功能。7.进行裁剪和移植功能设计和完成。

8.6 实验过程与分析

1.完成LCD显示功能,在LCD显示屏上输出文本:“Hello World!”。2.进入界面触屏控制选择功能,实现触屏选择功能。

3.自定义四种种功能,第一为电机控制,从键盘读取命令,并将功能编号显示在LED上,LED显示的是计数的数据,同时旋转按钮完成电机转速的控制选择。

4.第三种功能为划线,功能编号显示在LED高四位上,同时LCD屏幕清屏,为划线功能做准备,可以实现划线功能。

5.第四种功能为定时中断,当由键盘控制时,LED显示数值清零,实现了中断。6.实现裁剪与移植功能。

8.7 实验结果总结

完成了各种基本功能,并通过自拟的系统将各种功能整合起来,完成了一个小的嵌入式系统,对前七次的功能有了更深入的了解。通过LED的计数,当在计数值在前30秒之内,由键盘控制LED的数值及显示,按键盘上的某一个按键,实现对LED上的数值清零,后30秒由触摸屏控制清零,并且在前30秒之内,旋转按钮,实现对直流电机的运转,并且到步进电机的转换。

8.8 心得体会

嵌入式硬件设计论文 篇3

关键词:嵌入式软硬件;ARM;教学平台

中图分类号:TP319文献标识码:A文章编号:1007-9599 (2011) 06-0000-01

Design of Multi-platform Embedded Software/Hardware System on ARM

Li Huaizhou,Zhao Xuegong,Liu Shi

(School of Optoelectronic Information,University of Electronic Science&Technology,Chengdu610054,China)

Abstract:A design of embedded hardware teaching platform based on ARM is realized in the paper.After setting up software development environment,some lab projects related to the platform are designed.Multiple ARM processors can be compatible with the platform.It offers a solution contributes to improve students' innovation ability.

Keywords:Embedded software and hardware;ARM;Teaching platform

随着嵌入式行业的迅猛发展,社会上对嵌入式方向的研究人才的需求也大幅度增加。为此,本文设计了一种兼容多款ARM9的嵌入式教学实验平台。学生可通过切换不同的CPU板完成对基于ARM的嵌入式系统的全面深入学习。

一、实验系统硬件平台总体设计

本系统需要设计的是一个支持多平台的嵌入式硬件平台,我们在硬件设计时采用子母板的结构,不同的ARM芯片电路分别设计在较小的子板上,而共用外设电路设计在母板上,子板与母板间通过金手指接口连接。本系统设计了三个不同的CPU子板:S3C2440子板,AT92SAM9261子板和LSZCP320子板。同时设计一个能够兼容三个子板的母板。具体的硬件规划布局如图1所示。

二、实验系统软件平台设计

(一)嵌入式软件开发环境的建立

嵌入式系统开发模式为交叉开发模式:在主机上编辑、编译软件,在目标板上运行、验证程序。本系统搭建的交叉编译环境,主机为PC,目标板即为实验教学平台,交叉编译工具为arm-linux编译器。

(二)引导程序的加载

嵌入式系统中,Bootloader完成两项工作:首先,对嵌入式平台做一些简单的初始化工作;其次,加载操作系统内核,并将控制权交给操作系统。Bootloader的实现非常依赖于具体硬件,不同体系结构需求的Bootloader不同,所以需要针对不同的嵌入式系统进行Bootloader的一些移植。

(三)Linux内核移植

Linux内核文件数目将近2万,它们分别位于顶层目录下的17个子目录下:arch,block,drivers等,每个文件目录下都有相应的Makefile文件,它决定了内核中哪些文件被编译,如何编译这些文件以及怎么连接这些文件的规则。

Linux内核配置选项多达上千个,初学者要了解每个配置选项的作用很困难。所以通常都是在默认的配置文件基础上进行修改。例如本系统中对S3C2440子板采用的配置文件为/arch/arm/configs/smdk2410_defconfig。执行命令:make menuconfig,即可对内核进行重新配置。完成后执行命令:make uImage即在arch/arm/boot目录下生成uImage文件。

(四)构建Linux根文件系统

本系统针对Nand Flash设备采用的是yaffs的嵌入式文件系统。文件系统从基本目录开始创建,配置启动过程所需的文件,并且在/etc目录下建立配置文件inittab,确定init进程在启动与关机时的工作特性。该文件系统应用BusyBox来编译,制作yaffs文件映像。最后下载到Nand Flash存储器中。

三、开设的综合实验内容

本实验平台采用母板加子板的设计思想,可满足学生自主开发的需求。学生也可根据自己的要求选择外围硬件设备,完成不同的综合实验。本系统可开设的一些实验有:

1.多线程程序设计;2.串口通信设计;3.TCP程序设计;4.字符设备驱动程序入门实验;5.按键驱动程序设计;6.SD卡驱动分析与移植;7.LCD驱动分析与移植;8.嵌入式MP3播放器实验;9.远程视频监控实验;10.图像运动检测实验。

四、结束语

本文探讨了一种兼容多款ARM9处理器的嵌入式教学实验平台完整性设计,包括系统硬件平台的设计,嵌入式交叉开发环境的建立,Bootloader移植,Linux操作系统内核移植,根文件系统制作以及相关课程实验设计。经过测试与验证,设计的嵌入式平台达到了预期的效果,实现了一个可用于实验和开发的嵌入式平台,对提高学生的动手能力和创新能力具有重要的意义。

参考文献:

[1]杨水清,张剑,施云飞.ARM嵌入式Linux系统开发技术详解[M].北京:电子工业出版社,2010

[2]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008

[3]王洪辉.嵌入式系统Linux内核开发实战平台指南[M].北京:电子工业出版社,2009

[作者简介]李怀周(1986-),河南新乡人,在读硕士研究生,专业:电路与系统,研究方向:Linux嵌入式系统;赵学功(1986-),河南商丘人,在读硕士研究生,专业:电路与系统,研究方向:复杂电路系统;刘士(1986-),安徽亳州人,在读硕士研究生,专业:电路与系统,研究方向:Linux嵌入式系统。

嵌入式硬件设计论文 篇4

应用嵌入式网络技术的监控系统是监控领域将来的发展趋势。嵌入式网络监控系统是电子技术、计算机技术、通信技术和自动化技术快速发展并相互结合的高新技术产品。嵌入式网络技术改变以往监控系统的体系结构, 满足了现代监控系统的可扩展性、分布式、实时性等要求, 可广泛应用在电信、电力、交通、银行、水利、智能大厦等领域。本文设计了一种嵌入式网络视频监控系统, 该系统在32位高性能嵌入式处理器和专用视频压缩芯片的硬件平台上, 运用MPEG-4编码技术, 嵌入式Linux操作系统和流媒体技术进行设计。利用本系统可以进行网络数字化视频监控, 具有体积小、图像质量稳定、远距离监控等优点, 具有良好的应用与发展前景。 本文从视频监控技术的发展历史和嵌入式系统的现状入手, 分析了嵌入式网络视频监控系统的相关技术, 对通用的嵌入式处理器和专用视频压缩芯片进行了深入的研究, 给出了整个系统的设计方案和功能规划。基于上面的背景和对市场进行深入调查取证后, 研究了目前流行的嵌入式系统和MPEG-4专用视频压缩芯片, 在嵌入式系统方面确定了在AT91RM9200芯片上构建嵌入式Web服务器的解决方案。

1 系统的总体设计

整个网络视频监控系统采用C/S结构, 从主体上分为两部分:服务器端和客户端。服务器端主要包括嵌入式处理器、摄像头及其他外围辅助设备, 同时还包含运行在嵌入式平台上的采集、压缩与传输程序;客户端则是普通PC机, 通过它进行图像接收与回放。网络视频监控系统的基本处理机理, 即前端的视频监控服务器从现场的摄像头捕获实时的视频信息, 压缩处理后再通过以太网传输到远端的监控终端上。

系统的整体结构如图1所示, 视频图像采集和打包发送在服务器端完成, 图像的接收与回放将在客户端完成。

2 系统的硬件设计

系统采用模块化设计方案, 主要包括以下几个模块:主控制器模块、存储电路模块、外围接口电路模块、电源和复位电路, 如图2所示。

2.1 AT91RM9200主控器模块

主控器模块是整个系统的核心, 选用的是ATMEL公司的AT91RM9200型微处理器。它是一款基于ARM920T 核芯的32位微控制器。该处理器最高运行频率可达到200 MHz, 它的低功耗、精简和全静态设计特别适合于对成本和功耗敏感的应用。AT91RM9200提供了丰富的片内资源, 支持Linux操作系统。它能完成整个系统的调度工作, 在系统上电时配置所有工作芯片的功能寄存器, 完成视频流的编码, 并通过以太网控制器控制物理层芯片发送视频码流。

AT91RM9200微处理器的双向、32位外部数据总线支持8/16/32位数据宽度, 26位地址总线可以对最大64 MB空间进行寻址。片内集成了非常丰富的外围功能模块, 包括内存管理单元 (MMU) 、内部包含16 KB的SRAM和128 KB的ROM, 16 KB的数据缓存以及16 KB的指令缓存。其外部总线接口控制器 (EBI) , 支持SDRAM, 静态存储器, Burst FLASH以及Compact FLASH。为了提高系统性能还扩展了以下外设;增强的时钟发生器与电源管理控制器 (PMC) ;系统定时器 (ST) ;实时时钟 (RTC) ;高级中断控制器 (AIC) ;4个32位PIO控制器;20通道的外设数据控制器 (PDC) ;10/100兆Base-T型以太网卡接口;4个通用同步/异步串行收发器 (UASRT) 以及JTAG/ICE接口等。

在系统中AT91RM9200需要1.8 V和3.3 V电源, 另外, 大部分外围器件需要3.3 V电源, 小部分外围器件还需要5 V电源, 假设输入电压为5 V直流稳压电源。为了得到可靠的3.3 V电压, 此处选用的电压转换芯片是NCPlll7ST33T3, 它的输入电压为5 V, 输出电压为3.3 V, 最大输出电流为0.8 A。同样, 为了得到可靠的1.8 V电压, 选用NCPlll7STl8T3, 它的输入电压为5 V, 输出电压为1.8 V, 最大输出电流为0.8 A。由于3.3 V和1.8 V属于NCPlll7系列的2个固定输出电压, 所以设计比较简单, 只需要在电路中与芯片并联2个典型值为10 tlf的滤波电容即可。

2.2 系统存储电路模块

主控器还需一些外围存储单元如Nor Flash和SDRAM。Nor Flash 中包含Linux 的Bootloader、系统内核、文件系统、应用程序以及环境变量和系统配置文件等等, 同时还预留了一部分空间作为用户使用区;SDRAM读写速度快, 系统运行时把它作为内存单元使用。为充分保证系统的可扩充性, 系统设计采用了8 MB的Nor Flash和64 MB的SDRAM。

在网络视频监控系统的设计中, Flash存储器用于存放操作系统、文件系统和驱动程序等;SDRAM存储器主要用作运行嵌入式操作系统、应用服务程序和临时存放视音频信息。Flash存储器选用的是Spansion的存储芯片S29AL016D70TF。它是一个16 Mbit的Flash存储器;采用48脚TSOP封装和3.0 V电源供电。Hi3510与S29AL016D70TF的接口连接框图如图3所示。其中, CE#管脚为芯片使能输入, 由于此Flash用于存储引导程序, 故此引脚连接EBICSlN#;OE#管脚为输出使能输入, 连接EBIOEN;RY/BY为准备或忙输出管脚, 悬空。

SDRDM存储器选用的是Hynix的存储芯片HY57V281620ET, 它的容量位是16 MB, 单片数据宽度是16位, 为了增大数据吞吐能力, 选取两片SDRAM构成32位地址宽度, 存储容量为32 MB。

HY57V281620ET的工作电压为3.3 V, 常见封装为54脚TSOP, 兼容LVTTL接口。支持自动刷新 (Auto-Refresh) 和自刷新 (Self-Refresh) 。HY57V281620ET与Hi3510的接口连接框图如图4所示。

2.3 视频采集模块设计

视频采集芯片选用Philips公司生产的SAA7113H, 它是一款功能强大且操作简单的9位视频输入处理芯片, 采用CMOS工艺, 通过I2C总线与处理器或DSP连接可方便地构成应用系统。它内部包含四路模拟处理通道, 可以选择视频信号源并可抗混叠滤波, 同时还可以进行模数转换、自动箝位、自动增益控制 (AGC) 、时钟产生 (CGC) 、多制式解码, 另外还可以对亮度、对比度和饱和度进行控制。设置SAA7113H芯片的工作时钟为24.576 MHz, 数据输出格式为4∶2∶2, 帧频为25 fps。视频采集芯片SAA7113H在上电后, 并不是立即采集模拟视频信号进行A/D转换, 它必须由Hi3510通过I2C总线对其内部寄存器进行初始化设置后, 才能正常工作。视频采集芯片SAA7113H与Hi3510的接口原理图如图5所示。

2.4 外围电路模块

本设计用到的外设有USB接口、网卡接口、串行接口和JTAG接口。同时为保证系统将来的可扩展性, 系统还预留了PC104接口和大量的GPIO接口。还有AT91RM9200处理器的片内以太网卡端口和网络物理层芯片DM9161E 的MII 接口通信。而且片内以太网卡内置了独立的双缓冲读写DMA 通道, 这样大大提高了数据的发送速度, 同时还不影响AT91RM9200 的正常运行。

为保证视频采集质量, 监控系统选用了罗技等高端品牌的产品, 然后摄像头通过专用的USB集线器与处理器单元的USB接口连接。在实时监控状态下, 各个摄像头上捕获的图像数据通过USB集线器传输到视频监控系统的USB主控制器模块上, 然后再由USB主控制器模块交由AT91RM9200处理器集中处理。AT91RM9200对采集到的图像进行实时编码压缩, 编码之后的码流直接传输到发送缓冲区中, 等候发送。最后由上层应用程序将处理后的视频数据通过以太网口进行发送。

3 软件方案

系统的应用软件建立在Linux操作系统之上, 嵌入式Linux具有许多优点, 如开放源码、内核功能强大稳定, 支持多用户、多线程、多进程、实时性好、大小功能可定制等。本系统采用的嵌入式Linux系统是基于2.6.21的内核, 支持了内核抢占式调度, 同时调度周期为1 ms, 因此大大保证了系统的实时性。此外, 系统内嵌的嵌入式Linux系统实现了对所有硬件设备的驱动支持, 如基于Flash的文件系统、网卡驱动程序、USB驱动程序等等, 完全保证了系统的可用性。

在本系统中, 软件设计可分为3部分:视频图像数据采集、图像数据的JPEG压缩以及系统平台的网络通信。

3.1 视频图像数据采集的实现

首先加载USB摄像头驱动程序, 接着就是编写一个对视频流采集的应用程序。摄像头中的各种I/O口的控制主要依靠Video4Linux提供的应用程序接口函数实现, 主要有Open、Read、Write等。V4L下的视频采集1。在本系统中, 将有关摄像头的各种数据和结构封装成了一个类, 主要用到的一些系统调用函数定义如下:

3.2 Linux下图象数据的JPEG压缩

由于视频信息数据量过大, 因此必须在视频传输前对图像数据进行压缩处理。在本系统中, 摄像头采集过来的图像数据格式为RGB24, 通过调用Linux下的Libjpeg库来实现视频数据的编码, 把RGB24图像数据转换为JPEG格式。下面简述下整个压缩处理过程:首先初始化JPEG压缩的图片格式, 调用jpeg_set-defauhs (&cmjpeg) , 接着初始化JPEG压缩图片质量, 通过jpeg_set-ratio (&cmjpeg, ratio, 7rURE) 实现。

开始压缩:jpeg_start-compress (&cmjpeg, TURE) ;for (i--0, line--buf;i<_height;i++, line+=_width*3) jpeg_write-seanlines (&cmjpeg, &line, 1) ;

压缩完成:jpeg_finish-eompress (&cmjpeg) ;

将压缩得到的数据拷贝到jpeg数据变量中:memepy (new->buf 0。 ( (_dst_ptr) cmjpeg.dest) ->buffer, size) ;

释放内存并销毁cmjpeg变量:

jpeg_destory_compress (&cmjpeg)

jpeg_buff_free (&emjpeg) ;

最后返回return size;返回值size标记了缓冲区中视频数据的实际长度。

3.3 系统网络通讯的实现

本系统采用B/S (浏览器/服务器) 模式的通信构架。用户只需在远程客户机安装一个普通的浏览器软件, 其他大部分工作由Web服务器完成。B/S模式开发的监控软件, 降低了对系统软件的要求, 避免了用户对客户端的安装和设置, 实现了软件安装的简单化、自由化。

视频监控系统实现了对USB摄像头的驱动程序, 这样上层视频采集程序可以直接通过标准的Video4Linux接口函数访问USB摄像头设备, 捕获实时的视频流, 放入上层缓冲区, 同时通知上层服务器软件处理。

系统中内置了一个完整的基于网络的多用户视频服务器软件, 这样当服务器软件监听到有网络客户连接时, 立即启动采集进程从缓冲区中把处理后的视频流数据读出, 然后发送给相应的客户连接。同时为了保证监控客户端的简单性与统一性, 本系统中的客户端可以直接使用微软的IE浏览器, 即用户打开PC端的IE浏览器后, 直接在地址栏内输入需要访问的设备IP地址或者域名, 如192.168.0.5, 此时就可以在IE浏览器中显示当前的实时采集图像。

4 结束语

本系统采用嵌入式Linux操作系统和ARM处理器相结合的硬件平台, 视频信号从前端图像采集设备输出时即为数字信号, 以网络为传输媒介, 并基于国际通用的TCP/IP协议, 使用流媒体技术实现视频信号在网络上的传输, 构成了一个高质量、监控方式灵活、可靠性好和具有易于扩展架构的网络视频监控系统。ARM处理核和Linux操作系统相结合, 很好地体现了监控系统小型化、数字化、网络化、低功耗的优点。系统电路板现已成功配置和运行, 调试结果表明, 整个系统具有稳定可靠、安装简便、成本低廉等特点, 可广泛使用在家庭、银行、超市、公共场所等。

参考文献

[1]YANG S H, CHEN X, ALTY J L.Design issues and imple-mentation of internet-based process control systems[J].Con-trol Engineering Practice, 2001, 11 (6) :709-720.

[2]WALSHG C, YE H.Scheduling of networked control systems[J].IEEE Control Systems Magazine, 2003, 21 (1) :57-65.

[3]WALSHG C, YE H, BUSHNELLL.Stability analysis of net-worked control systems[C]//Proceedings of the American Control Conference, San Diego, 1999:2876-2880.

[4]LIU G P, REES D, CHAI S C, et al.Design simulation and implementation of networked predictive control systems[J].Measurement&Control, 2005, 38 (1) :17-31.

[5]LIU G P, CHAI S C.Design and practical implementation of networked predictive control systems[C]//Networking, Sens-ing and Control, Proceedings, IEEE, 2005, 3:336-341.

[6]BIANHB, LIUG P, DONG Z.Structure design and applica-tion of embedded ethernet based control systems[C]//IEEE International Conference on Networking, Sensing and Control, 2007:47-51.

[7]FURUTAK, KAJIWARAH, KOSUGE K.Digital control of a double inverted pendulum on an inclined rail[J].Internation-al Journal of Control, 1980, 32 (5) :907-924.

[8]FURUTA K, OCHIA T, ONO N.Attitude control of a triple inverted pendulum[J].International Journal of Control, 1984, 39 (6) :1351-1365.

[9]MORI, SHOZO, NISHIHARA H, et al.Control of unstable mechanical system:controlof pendulum[J].International Journal of Control, 1976, 23 (5) :673-692.

[10]杨磊.数字化、网络化视频监控系统的技术优势[J].IB智能建筑与城市信息, 2006 (11) :22-24.

嵌入式系统设计与应用 篇5

嵌入式系统定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。(一切非PC计算机系统)嵌入式系统特点:“专用”计算机系统,运行环境差异很大,比通用PC系统资源少,功耗低,体积小,集成度高,成本低,具有完整的系统测试和可靠性评估体系,具有较长的生命周期,需要专用开发工具和方法进行设计,包含专用调试电路,多学科知识集成系统。嵌入式系统应用范围:汽车,工业控制,通信设备,消费电子,商业终端,航空航天,军事需求。

嵌入式系统的基本开发流程:系统定义与需求分析阶段,方案设计阶段,详细设计阶段,软、硬件集成测试阶段,系统功能性测试及可靠性测试阶段。

系统定义与需求分析阶段:对系统需求进行分析,制定系统的设计依据。方案设计阶段:确定系统初步设计方案并形成设计描述文档。详细设计阶段:完善初步方案,对方案实施详细设计。

软硬件集成测试阶段:对系统软硬件进行综合测试,验证系统设计功能。

系统功能性能测试及可靠性测试测试:对系统功能,性能,可靠性进行综合测评。

对于使用操作系统的嵌入式系统来说,嵌入式系统软件结构一般包含4个层面:板级支持包层,实时操作系统(RTOS)层,应用程序接口(API)层,应用程序层。有些资料将应用程序接口API归属于OS层,按3层划分的应用程序控制系统的运作和行为;操作系统与硬件无关,不同的嵌入式操作系统其组成结构也不尽相同 嵌入式操作系统种类繁多,大体分为两种:商用型和免费型

商用型:VxWorks,Windows CE,pSoS,Palm OS,OS-9,LynxOS,QNX和LYNX 免费型:Linux和uC/OS—II uC/OS—II具有执行效率高,占用空间小,可移植性及扩展性强,实施性能优良,稳定性和可靠性良好等特点。其内核采用微内核结构,将基本功能(如进程管理,存储管理,中断处理)放在内核中,留给用户一个标准API函数,并根据各个任务的优先级分配CPU时间。交叉开发环境:交叉开发是指一个通用计算机上进行软件的编辑编译,然后下载到嵌入式设备中进行调试的开发方式,它通常采用宿主机/目标机模式。

第二章:

RISC是精简指令集

精简指令集体系结构的优点:硬连线的指令译码逻辑,便于流水线执行,大多数RISC指令为单周期执行。

精简指令集处理器的优点:处理器关心面积小,开发时间缩短,开发成本降低,容易实现高性能,低成本的处理器。

精简指令集体系结构缺点:与CISC相比,通常RISC的代码密度低;RISC不能执行x86代码;RISC给优化编译程序带来了困难

ARM设计采用的RISC技术特征主要有:Load/Store体系结构,固定的32位指令,3地址指令格式。

ARM7TDM名称具体含义:ARM7:32位ARM体系结构4T版本;T:Thumb16位压缩指令集;D:支持片上Debug,使处理器能够停止以响应调试请求;M:增强型Multiplier,与前代相比具有较高的性能且产生64位的结果。I:EmbeddedICE硬件以支持片上断点和观察点。ARM7 3级流水线:(取指级,译码级,执行级)ARM9TDMI 流水线操作:(取指,译码,执行,缓冲/数据,回写)5级 ARM处理器核可工作两种状态:ARM状态和Thumb状态

从ARM进入Thumb状态,当操作数寄存器Rm的状态位bit[0]为1时,执行“BX Rm”指令进入Thumb状态

从Thumb进入ARM状态,当操作数寄存器Rm的状态位bit[0]为0时,执行“BX Rm”指令进入ARM状态

ARM处理器工作模式(共7种):除用户模式外的其他六种模式称为特权模式。特权模式:主要处理异常和监控调用(有时也称为软件中断),他们可以自由地访问系统资源和切换模式

ARM处理器总共有37个寄存器,均为32位 ARM状态下的通用寄存器分为3类: 未分组寄存器:R0~~R7(为公用寄存器)

分组寄存器:R8~~R14

R13通常用于堆栈指针SP

R14用做子程序链接寄存器

程序计数器:R15(PC)

用做程序计数器

ARM程序状态寄存器中

条件码标志(N Z C V)

N——在结果是带符号的二进制补码的情况下,结果为负,N=1 否则为0 Z——结果为0 Z=1 否则为0 C——针对加法:产生进位

C=1 否则为0

针对减法:产生借位

C=0 否则为1

针对有移位操作的非加减法指令

C为移位操作中最后移出位的值

对于其他指令

C通常不变

V——对于加减法指令

操作数和结果为带符号的整数时,产生溢出

V=1 否则为0

对于其他指令

V通常不发生变化 ARM的异常中断响应过程: 一:将CPSR的内容保存到将要执行的异常中断对应的SPSR中,以实现对处理器当前状态,中断屏蔽字以及各条件标志位的保存。二:设置当前状态寄存CPSR中的相应位:

设置CPSR模式控制位CPSR[4:0],使处理器进入相应的执行模式

当进入Reset或FIQ模式时,还要设置中断标志位(CPSR[6]=1)禁止FIQ中断,否则其值不变

设置中断标志位(CPSR[7]=1),禁止IRQ中断

三:将寄存器LR-设置成异常返回地址 return link(对于某些异常中断,保存在LR-的值可能与实际返回的地址有一个常数的偏移量),使异常处理程序执行完后能正确返回原程序

四:给程序计数器PC强制赋值,使程序从相应的向量地址开始执行中断处理程序。

非向量中断和中断向量的区别和联系

异常中断的优先级:复位(最高),数据异常中断,FIQ,IRQ,取值指异常中止,SWI未定义指令

ARM支持的数据类型(6种):8位有符号和无符号字节

16位有符号和无符号半字,以2字节的边界定位

32位有符号和无符号半字,以4字节的边界定位

ARM存储器组织:以字节为单位寻址的存储器中有“小端”和“大端”两种方式存储字 小端格式:较高的有效字节存放在较高的存储器地址,较低的有效字节存放在较低的存储器地址

大端格式:较高的有效字节存放在较低的存储器地址,较低的有效字节存放在较高的存储器地址

ARM处理器能方便地配置为其中任何一种存储器方式,但他们的缺省设置为小端格式(71页有题)

ARM7TDM内核的重要特性:53页最上面

第三章:

指令分类中基本指令格式

S

可选后缀,若指定S,则根据指令执行结果更新CPSR中的条件码 ARM寻址方式

立即寻址有选择题

寄存器间接寻址:ARM的数据传送指令都是基于寄存器间接寻址,即通过Load/Store完成对数据的传送操作

103页举例

可能为考题

伪操作

是ARM汇编语言程序里的一些特殊指令助记符,它的作用主要是为完成汇编程序做各种准备,在源程序进行汇编时由汇编程序处理,而不是在计算机运行期间由机器执行 ARM嵌入式系统程序设计可以分为ARM汇编语言程序设计、嵌入式C语言程序设计以及C语言与汇编语言的混合编程。

ARM汇编程序中

AREA指示符定义本程序段位代码段

即申请一个定义段 161页程序

可能考

嵌入式C语言程序设计中修饰符:interrupt、near、far、huge Interrupt在函数修饰为中断函数,没有输入和输出参数 第三章课后习题见李向妮笔记

第四章

DMA

I2C

I2S 基于S3C44B0X的最小系统设计:

嵌入式最小系统是指保证嵌入式微处理器可靠工作所必需的基本电路组成的系统,通常包括处理器单元、时钟单元、复位单元、、存储器单元、供电电源和调试接口。

基于ARM的嵌入式最小系统基本组成包括:基于ARM核的微处理器、电源电路、复位电路、时钟电路、存储器电路(FLASH和SDRAM)、UART接口电路和JTAG调试接口

第五章:

uC/OS—II采用的抢占式内核是一个真正的实时操作系统

uC/OS—II基本特点:源码开放;可移植性;可裁剪;抢占式内核;可扩展的多任务;可确定的执行时间;中断管理;稳定性和可靠性

uC/OS—II的文件结构(与内核功能相关的文件):任务管理;同步通信;内存管理;时间管理

uC/OS—II任务及其运行状态:

任务是一个简单的程序,对应于实际应用中的一个逻辑功能。对uC/OS—II来说,任务是系统运行的基本单元,系统以任务为单元分配内存资源和处理时间,每个任务都有自己独立的寄存器和栈空间。

任务看起来就像一个无限循环永不返回的函数,但是不同于函数的是,它有一套自己的内存空间,运行时完全占用处理器资源,在任意确定的时刻都处于休眠、就绪、运行、挂起以及中断服务这五种状态之一 图见书上337

第六章

uCLinux与标准Linux的最大区别就在于内存管理。标准Linux是针对有MMU的处理器设计的

uCLinux不使用虚拟内存管理技术,采用的是实存储器管理策略,也就是说uCLinux系统对内存的访问是直接的

uCLinux与标准Linux系统在进程的创建

进程的执行

进程的终止

上有着显著不同 基于uCLinux操作系统的应用开发环境一般是由目标系统硬件开发板和宿主PC机所构成。目标硬件开发板用于运行操作系统和系统应用软件,而目标板所用到的操作系统的内核编译、电子词典应用程序的开发和调试则需要通过宿主PC机来完成。目标板用来进行内核编译

PC机用来进行调试

移植就是使一个实时操作系统能够在某个微处理器平台上或者微控制器上运行。uCLinux移植包括3个层次的移植: 处理器结构层次移植、芯片层次移植、板级移植。

嵌入式以太网智能接口设计 篇6

关键词:S3C2440处理器;DM9000;以太网接口;嵌入式WEB服务器

中图分类号:TP368.1 文献标识码:A文章编号:1007-9599(2012)01-0000-02

Embedded Ethernet Intelligent Interface Design

Cui Jingjing

(China University of Mining&Technology,School of Computer Science and Technology,Xuzhou221116,China)

Abstract:This paper describes a design of embedded Ethernet interface based on S3C2440 processor,DM9000 controller and TLC2543 the software are design mainly includes the driver of the Ethernet chip,AD module and embedded Web server.This design has some merits such as simple hardware and so on.This interface can be directly applied to industrial data acquisition system.

Keywords: S3C2440 processor;DM9000;Ethernet interface;Embedded WEB server

一、整体设计

随着以太网技术在工业远程控制和数据采集领域的飞速发展,基于以太网的应用接口设备也迅速普及到很多领域。本设计采用的是S3C2440 ARM微控制器和以太网控制芯片DM9000组成的以太网接口,使得现场实时数据能够通过以太网进行传输,并且接受网络上客户端的控制等。最底层为硬件系统,最上层为应用程序,中间的软件系统包括驱动和Linux操作系统两个部分。

二、硬件模块的设计

该系统硬件主要由以下几部分组成:AD模块进行现场信号的数据采集,S3C2440微控制器的数据处理和打包等,DM9000以太网芯片完成现场信号的以太网传输和控制,其他外围电路。框架图如图1所示

图1 硬件框架图

S3C2440是三星公司推出的16/32位RISC微处理器,采用了ARM920t的内核外设齐全,接口标准,扩展方便。为手持设备和一般类型应用提供了低价格、低功耗、高性能小型微控制器的解决方案。S3C2440的2个SPI口,可实现串行数据双工传输。S3C2440的SPI口包括2条数据线和2条控制线:SPIMOSI、SPIMISO、SPICLK、NSS。

S3C2440具有10位CMOS的ADC,具有8通道模拟输入的设备,但是在本设计中不能方便的外界模拟传感器等现场设备,所以采用外界模数转换模块。数据采集模块的AD模块选择TLC2543串行ADC。如图3:

图3 TLC2543管脚图

片选端、输入/输出时钟、数据输入、数据输出分别接主控制器SPI端口的NSS、SPICLK、SPIMISO、SPIMOSI。

EOC为转换结束标志,AD转换开始时,变低电平,转换结束变高电平,此时数据准备完毕,可以输出。且转换的第一个数据不准,应舍弃。

三、交叉编译环境的搭建和Linux驱动的研究

在Linux平台下,要为开发板编译内核由于一般嵌入式开发系统存储大小有限,通常都要在pc机上建立一个用于目标机的交叉编译环境。这是一个由编译器、连接器和解释器组成的综合开发环境。但其过程复杂,也降低了开发的效率,本文就选择在微处理器上移植arm-linux-gcc-4.3.2。

下载解压到指定文件夹后把编译器路径加入系统环境变量,编辑/root/.bashrc文件,在最后一行export PATH=$PASH:/usr/local/arm/4.3.2/bin。立即使新的环境变量生效:#source /etc/profile。最后检查是否将路径加入到PATH:#echo $PATH,显示内容中有/usr/local/arm/4.3.2/bin,说明已经将交叉编译环境安装完成。

AD驱动程序的设计。设备驱动通过module_init宏在全局初始化函数中键入将设备初始化函数,然后再内核初始化时完成驱动的初始化和注册,然后应用程序就可以和操作普通文件一样,打开、关闭、读写等,就可以操作底层硬件。ARM平台中位于用户空间的TCP程序可调用AD驱动实现传感器数据的采集。

四、嵌入式WEB服务器及应用软件的研究

在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚本或CGI功能的Web服务器,能够生成动态页面,在用户端只需要通过Web浏览器就可以对嵌入式设备进行管理和监控,非常方便实用。首先就是要在主处理器上成功移植支持脚本或CGI功能的嵌入式WEB服务器,然后惊醒应用程序的开发。典型的嵌入式WEB服务器有Boa和thttpd。

(一)Thttpd的移植和配置

Thttpd是ACME公司设计的一款用C语言编写的比较精巧、开源、易移植和安全的Web服务器。

下载解压后移植步骤如下:

1../config

2.make

3.make install

这个时候可能会出现问题,即需要www用户组,通过命令groupadd www来生成www用户组。

4.添加用户验证:htpasswd -C htpasswd root

5.添加配置文件:thttpd -C/etc/thttpd/thttpd.conf

配置文件如下所示:

dir=/usr/local/www/data

logfile=/usr/local/www/logs/thttpd.log

pidfile=/var/run/thttpd.pid

6.配置启动项

thttpd-p80-d/var/www-nor-uroot-C/cgi-bin/*.cgi

其中80是端口号,/var/www是启动目录,root是指定用户组为root,/*.cgi是要调用的CGI程序。

(二)应用程序的设计

嵌入式Web服务器一个基本的功能就是静态网页的浏览,即Web server将存储在服务器端的Html文件单一的传送到客户端。动态页面就是服务器和客户机之间存在互动,服务器受到客户的请求后将指定的结果返回到客户端的浏览器中。对于浏览器和服务器之间的动态交互,常用的技术有CGI、ASP、PHP和JSP。

CGI是物理上的一段程序,运行在服务器端,提供同客户端Html页面的接口。本设计中通过C语言来完成CGI接口。其中用METHOD属性指定的方法将数据传送到服务器后,CGI程序对信息进行解析。根据用户的需求调用系统的后台程序来生成动态网页,然后返回给浏览器端,如图4所示。超文本标识语言HTML可以用于描述静态网页,通用网关接口CGI可以进行数据的双向交互,浏览器通过运行Java Applet实现读取实时数据和刷新网页的功能。

五、结语

工业设备网络化、智能化是未来社会的发展趋势。本设计采用S3C2440和DM9000完成了以太网智能接口的硬件设计,并通过Linux系统的支持和嵌入式Web服务器的完成了整个以太网接口的设计,实现了现场仪表与以太网的互联,增强了嵌入式系统的功能。

参考文献:

[1]施勇,温阳东.基于DM9000A的嵌入式以太网接口设计与实现[J].合肥工业大学学报(自然科学版),2011.04.010

[2]姚冰,康世英,谢佳.嵌入式以太网接口硬件部分的设计与实现[J].微处理机,2008,29(2):155-157

[3]扬小辉,肖丽娜.基于ARM和以太网的远程控制只能控制仪表的设计[J].工业控制网络,2009,(5):22-24

[4]杨素英,李丹,仲崇权,等.基于Web Server下的嵌入式系统应用研究[J].仪器仪表标准化与测量,2002(5):2-7

[5]Karim Yaghmour,《Building Embedded Linux Systems》,USA:O'Reilly,2003

[6]Wookey,Chris Rutter,Jeff Sutherland,Paul Webb,《The GNU Toolchain for ARM Target HOWTO

嵌入式硬件设计论文 篇7

嵌入式系统中硬件的不同设计对软件的影响重大。本文就S3C2410平台上, 扩展一个1602字符型LCD, 提出了两种不同的扩展方案, 并且根据不同的硬件设计, 编写了相应的驱动程序, 并就此问题进行了一些性能分析。

S3C2410是韩国三星公司推出的16/32位RISC微控制器, 其CPU采用的是ARM920T内核, 具有117个通用I/O口。S3C2410的内存空间和IO空间是统一编址的。访问内存空间和访问IO空间使用相同的指令。存储空间分成8组, 每组最大容量是128MB;通过8个片选信号n GCS0~n GCS7来选择不同的内存组。

1602型LCD采用标准的14脚接口, 其中VSS为地源线, VDD接5V正电源, V0为液晶显示器对比度调整端, 接正电源时对比度最弱, 接地电源时对比度最高, 对比度过高时会产生“鬼影”, 使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择, 高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线, 高电平时进行读操作, 低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址, 当RS为低电平RW为高电平时可以读忙信号, 当RS为高电平RW为低电平时可以写入数据。E端为使能端, 当E端由高电平跳变成低电平时, 液晶模块执行命令。D0~D7为8位双向数据线。1602型LCD的具体读写时序如图1。

1 设计方案一

首先考虑到的方法是, 通过处理器的通用输入/输出端口 (GPIO) 来连接1602型LCD。使用这种方法, 硬件设计最简单。可以通过对GPIO控制器寄存器的写操作来控制LCD的输出。

1.1 硬件设计

S3C2410总共有117个GPIO口, 共分为Port A到Port H;其中很多GPIO口的引脚是与其他引脚复用的。此处, 我们采用S32410的Port D连接1602。Port D共16个GPIO引脚, 分别为:G P D 0~G P D 1 5, 其控制寄存器的地址为:控制寄存器GPDCON, 地址0x56000030;数据寄存器GPDDAT, 地址0x56000034等。其中GPDDAT[15:0]中, 每位, 用来控制Port D中的一个GPIO口。设计图2所示。

1.2 驱动程序实现

因为此种方案通过控制GPIO来控制1602型LCD, 因此在驱动程序中, 必须通过程序控制GPIO按照1602型LCD的时序要求来逐一给各个引脚需要的信号, 从而来控制LCD。具体程序流程图如图3所示。

2 设计方案二

通过数据总线、地址总线来连接1 6 0 2型L C D。即将S3C2410的数据总线, 连接到1602的数据线上;将S3C2410的地址总线, 通过一个译码器, 生成1602型LCD需要的E, RS信号。采用此方法, 需要考虑时序问题, 因此较为复杂。

2.1 硬件设计

此方案通过地址、数据总线来连接1602型LCD。即把1602型LCD包含到IO空间中。因此, 可以通过对存储空间的读写指令来控制1602型LCD。因为1602中的RS信号用来选择是写指令或者数据。本来可以设计为将DATA8连接RS, 这样, 通过一条访问内存的指令就可以完成所有任务 (包括写指令和写数据) 。但是, RS信号, 要求在写周期开始即给出, 而数据总线的信号在RS信号后一段时间才能给出, 因此还是需要通过一个GPIO来首先拉低RS信号。此处, 选用GPD0连接RS。同时又考虑到S3C2410的内存写周期为10ns, 但是1602型LCD的最小写周期要400ns。因此电路中需要加入延时等待电路:在CPU的写周期中, 插入390ns的等待周期 (我们采用了555电路来设计延时电路) 。具体设计设计方案如图4所示。

2.2 驱动程序设计

此方案把1602型LCD包含到IO空间中。因此, 可以通过对存储空间的读写指令来控制1602型LCD。我们设计时, 将1602型LCD连接在第三个内存组 (通过n GCS3) , 这样1602型LCD的寄存器地址为0x18000000同时因为要求首先有RS信号, 因此, 首先通过设置GPD0 (连接RS) 来确定写指令还是写数据。具体程序流程如图5所示。

3 分析与结论

综合两种方案, 我们不难发现。采用方案一的设计, 控制1602型LCD输出一个字符至少需要9条指令。但是采用方案二, 同样是控制1602型LCD输出一个字符, 却只需要5条左右CPU指令。显而易见, 硬件的构架, 决定了软件的编写。硬件设计的好坏, 系统的效率, 软件的代码量及可维护性。

参考文献

[1]WayneWolf.嵌入式计算机系统设计原理.机械工业出版社.2004.

[2]Jonathan Corbet.Greg Kroah-Hartman, Alessandro Rubini Linux Device Driver2nd.O'Reilly.2004.

嵌入式系统的设计 篇8

嵌入式系统的核心是嵌入式微处理器。嵌入式微处理器一般具备以下几个特点:对实时多任务有很强的支持能力, 能完成多任务并且有较短的中断响应时间;具有功能很强的临界存储区保护功能;可扩展的处理器结构, 通常包含专用调试电路, 外部有JTAG边界扫描接口供调试下载使用;嵌入式微处理器必须功耗很低。

1 嵌入式系统的特点

与通用计算机相比, 嵌入式系统有着自身的不同之处:

1) 嵌入式系统是将计算机技术、半导体技术及电子技术与各个行业应用相结的产物, 这一点就决定了它必然是一个技术密度、资金密度和不断创新的知识集成系统;

2) 嵌入式系统其升级换代是具体产品同步进行的, 因此嵌入式系统产品就有较长的生命周期;

3) 嵌入式系统中一般都固化在存储器芯片或无微处理器本身中, 而不是存储在磁盘等载体中;

4) 嵌入式系统并不具备自身进一步开发的能力。设计完成以后用户如果需要修改程序, 必须借助开发工具。

2 嵌入式系统的设计流程

嵌入式系统的设计流程通常由5个阶段构成:系统描述和分析、选择总体方案和模块划分、软硬件协同设计、系统集成、系统测试。由于嵌入式系统设计流程是一种软硬件协同设计、协同测试的过程, 因此各个设计阶段往往需要交叉进行, 反复修改直至完成设计。

1) 系统描述和分析:确定设计任务和设计目标, 并提出设计规格说明书, 作为正式设计指导和验收的标准。系统需求一般分功能性需求和非功能性需求两方面, 而功能性需求是系统的基本功能。

2) 选择总体方案和模块划分:总体方案的拟订主要针对设计规格说明书, 根据所掌握的知识和资料, 从全局出发明确总体功能和各部分功能, 同时依据一定的指导原则和分配算法对硬件软件功能进行分析, 合理划分, 从而使系统的整体性能、运行时间、能量损耗和存储能量达到最佳状态。通常总体方案不止一个, 设计者应从各方面反复比较, 选防护情况下用于60℃以上高温场所, 适用于使用上不允许显著增大原有构件截面尺寸, 但又要求大幅度提高其承载能力的混凝土结构加固。

5.2.1门洞钢构件组装 (如下图) 出最佳方案。

3) 硬件软件协同设计:基于体系结构, 对系统的软件、硬件进行详细设计。为了缩短产品开发周期, 设计往往是并行的。嵌入式系统设计的工作大部分集中在软件设计上, 模块化设计时现代软件工程经常采用的方法。

4) 系统集成:把系统的软件、硬件和执行装置集成在一起, 进行调试, 发现并改进单元设计过程中的错误, 为后面的系统总体设计测试创造条件。

5) 系统测试:对设计好的系统进行总体测试, 测量整体性能、运行时间、功耗等参数, 看其是否满足规格说明书中给定的功能要求。

3 嵌入式系统设计面临的难题和改进措施

要求更高的应用需求推动嵌入式设计从8/16位转向功能更强大的32位嵌入式微处理器, 这种升级给工程师带来了严峻的挑战, 提出了一系列问题:

1) 需要熟悉新的开发环境。为了给用户提供更多的不同层次的选择方案, 嵌入式系统应用已经越来越多样化, 嵌入式系统实现的最高形式是片上系统So C, 而So C的核心技术是重组IP核构件。学习和熟悉新的开发模式将会事半功倍地构建功能强大和性能卓越的嵌入式系统。

2) 技术门槛提高, 需要学习全新的RTOS技术。这对于未经过计算机专业训练的工程技术人员来说, 则需要学习全新的RTOS技术。

3) 选择合适的开发工具, 熟悉新的开发环境。32位开发工具要比8位开发工具复杂的多, 使用的技术门槛要高的多, 同时其投资也要高得多, 进入32位系统开发, 工程师不得不面对与8位系统很不相同的开发环境。如何正确选择处理器架构、评估嵌入式操作系统以及使用陌生的开发工具, 都是一个新的挑战。

4) So C设计所面临的巨大的挑战。So C已经开始成为新一代应用电子技术的核心, 这已成为电子技术的革命标志。现在工程师要越来越多面对的是巨大的IP模块库, 并且其所有的设计工作都是以IP模块为基础。So C技术是嵌入式系统设计工程师变成了一个面向应用的电子器件设计工程师。随着So C应用的日益普及, 未来会在很多领域对So C测设技术提出越来越高的要求。

参考文献

[1]杨刚, 龙海燕.嵌入式系统设计与实践.

[2]刘凯.嵌入式系统设计技术浅谈.国防科技大学论文.

嵌入式硬件设计论文 篇9

1 嵌入式软件

随着社会不断朝着信息化的方向发展,计算机在人们日常生活中的重要性越来越突出。在计算机软件设计中,由于嵌入式软件具有较强的稳定性,并且操作简单,深受计算机行业人士的喜爱。嵌入式软件在计算机软件设计中也有着重要的地位,不仅能够大大地提高软件产品的质量,还能够避免软件产品中的问题及不足。在计算机软件设计的时候,可以以嵌入式软件的执行预测、缓存机制及动态分配为基础,优化计算机软件实时处理功能。嵌入式软件在计算机软件设计中主要是硬件处理及软件处理两方面的应用,在计算机软件设计中,要以系统为支撑,然后通过程序员编写程序。在此过程中对多个任务进行同时处理的系统就是嵌入式处理器。嵌入式处理器能够在极短的时间内处理多个任务,并且还能够实时保存信息资源。嵌入式软件有两个优点,其一,由于嵌入式软件的模块化,它可以检测软件并且对其进行修复;其二,嵌入式软件可扩展软件处理器,在计算机进行软件设计和操作的时候,可以使用最低的功率进行,使嵌入式软件的优势可以最大程度地得到发挥,嵌入式软件在计算机软件设计中有着主导作用[1]。

2 在计算机软件设计中的应用

在计算机软件设计中使用嵌入式软件涉及了多个领域,可以大大缩短软件设计中的时间并提高软件设计的效率。

2.1 原理

嵌入式软件和计算机软件存在着一定程度的区别,所以也就导致了嵌入式软件在计算机软件设计运行原理中存在差异的原因。嵌入式软件在计算机软件设计中的预测指令、缓存机制及动态分配等功能中有着重要的作用,它可以在保证计算机软件设计的操作基础上提高软件设计的安全性。虽然嵌入式软件和计算机系统有所差异,但是两者还有一定的相同点:在设计中都要考虑软件设计及硬件设计。软件包括操作系统及程序编写系统,硬件包括输入/输出设备、存储器、外设、处理器等。计算机软件设计中,是由应用程序对系统的操作进行控制,操作系统对程序的编程及硬件进行控制。另外,嵌入式微处理器是嵌入式软件的核心,如今在计算机软件设计中普遍应用的是ATg IRM9200处理器。在软件设计中,模块的设计是核心内容,它的设计质量决定了计算机软件设计是否可操作,也决定了计算机软件设计是否安全[2]。

2.2 开发步骤及设计

2.2.1 嵌入式软件的开发依据

在计算机软件设计中应用嵌入式软件的原理主要是计算机在处理紧急的软件时,嵌入式软件可以利用实时处理功能构建CORBA模型【3】。另外,嵌入式软件还能运用远程调控功能为计算机软件设计提供多种设计任务,降低计算机软件设计的时间,提高计算机软件设计效率及质量。以CORBA模型为例子,研究嵌入式软件在计算机软件设计中的应用,探索嵌入式软件是否可以对计算机软件设计进行创新及完善。

2.2.2 开发步骤

在计算机软件设计中使用嵌入式软件,可以有效提高计算机软件的设计水平,优化计算机软件的开发流程,进一步提高软件系统的可靠性。在计算机软件设计中使用嵌入式软件的时候,首先就要确定软件的开发流程,全面了解计算机中的软件及硬件结构,使两者能够分离,使软件不再依靠硬件,从而提高计算机软件的安全性及可靠性。应用嵌入式软件还能初始化计算机软件中的数据,并格式化计算机软件中的数据结构,为了能够使计算机软件中的设计能够更加完善,可以直接对软件及硬件进行操作。嵌入式软件的开发流程如图1所示。

嵌入式软件的开发流程的步骤分为:(1)全面掌握计算机软件系统的需求,并且对其进行分析了解;(2)根据计算机软件的需求,程序员就可以编写程序代码;(3)对软件性能进行测试,并且对测试结果进行分析,从而能够优化计算机软件设计。由此可见嵌入式软件的开发流程是比较简单的,这也为计算机软件提供了可靠性的保障。在软件设计中,应该着重注意软件数据的初始化工作和格式化工作[4]。

2.3 嵌入式软件在计算机软件设计中的应用

2.3.1 对计算机软件多任务进行划分

嵌入式系统中的应用软件可以保障系统功能的完善,并且还肩负着资源管理及任务间的通信责任。对软件的资源管理及任务通信进行实现的是计算机系统中的微内核,其也是计算机软件的基础程序。应用嵌入式软件,就要对软件不断地进行优化设计及协调,并且优化嵌入式RTOS模型,使软件系统中的任务可以独立工作。

对计算机软件中的任务进行划分,需要将数据进行转换,之后再进行分析应用程序。影响任务划分主要是由于应用系统数据通信之间的异步关系,其可以从两方面进行考虑:(1)系统中的输入/输出系统。输入/输出系统中的驱动要以软件系统中的应用程序及中断为基础才能够实现,其中应用程序就占了CPU大部分的空间,所以就要通过中断以此来提高计算机软件中的实时性及实用性;(2)软件系统内部功能。计算机软件系统中的并行任务有周期任务、应用控制任务及用户接口任务等等,为了将这些任务合为一个任务,就要对任务的激活进行全面考虑。为了能够使计算机软件设计流程更加简单,可以使用同一种事件驱动,来提高软件的资源共享[5]。

2.3.2 存储映像布局及任务组织

在对系统应用功能划分为多个独立任务之后,就要对其进行组织,组织任务的方式主要是以各个任务之间的关系为基础进行的,这些任务的组织及管理功能与嵌入式操作系统有着一定的联系。另外,由于嵌入式操作系统并不完善,所以就要应用程序保存在Flash或者ROM中。为了之后操作系统可以正常运行,就要在组织任务的时候对其进行科学的安排,并且对计算机软件中的系统布局进行优化及完善。软件系统布局主要重点考虑存储映像布局和物理零地址存储器,系统在加电之后,可以在物理零地址上设置代码。嵌入式软件中的应用系统是由ROM启动,物理零地址可以存储计算机系统中的向量。此方式最大的优点就是简单快捷,能够提高处理器在调取向量的速度。

2.3.3 任务调度及实时性应用

在计算机软件设计中应用嵌入式软件,要重点考虑嵌入式系统的实时性,主要分为两方面:(1)软实时性。主要是使系统能够在规定的时间内完成任务,如果没有完成可以延迟;(2)硬实时性。主要是使系统能够在规定的时间内完成任务,如果没有完成,则会有严重后果。所以计算机软件系统的调度应该采用优先的方式,这种方式主要是指微内核可以根据系统中的紧急任务来对软件系统进行优先顺序的安排,并且可以根据不同的优先等级对系统进行划分,以使响应时间可以有效降低[6]。

2.3.4 初始化系统

在计算机软件设计中使用嵌入式软件,还要重点考虑对系统的初始化及执行。编写初始化系统代码是在嵌入式系统的微内核及硬件抽象层中的,主要是对系统进行初始化及引导。与计算机软件系统不一样的是其并没有BIOS系统,所以,开发软件的工作人员就要设计方案来引导系统和编写初始化代码,对这些代码进行执行之后,再进行工作,比如存储系统的初始化、RAM变量的初始化及设置异常中断向量等等。最后再通过设置相应的指令来缓冲嵌入式软件系统,随后进入系统进行调度。

2.3.5 时钟通信及任务

计算机软件设计的时候要注重考虑时钟服务,在嵌入式软件中也有时钟,通常是以“lick”形式出现。所以在计算机软件设计中使用嵌入式软件的时候,还要设计计算机软件的时间,使其中的每项任务都有时钟,并且通过时钟来对其进行控制动作。在嵌入式软件中,大多都有信号、信号量、邮箱等,这可以使软件资源及任务通信和同步得到有效实现。

3 结语

随着社会的不断进步与计算机技术的飞速发展,嵌入式软件在计算机中的应用也有较好的前景。通过以上描述,在计算机软件中应用嵌入式软件,使用分层结构进行设计,可以提高计算机软件的灵活性,还可以简化系统软件的设计过程。首先阐述了嵌入式软件的含义及特点,对嵌入式软件设计的方式进行了分析,研究了在计算机软件设计中使用嵌入式软件的作用。

摘要:随着我国社会的不断发展,计算机行业的技术水平也在不断地提高。在此背景下,嵌入式软件也得到了人们的重视,被人们广泛运用到计算机软件设计中。嵌入式软件具有专业性及实时处理的优点,将嵌入式软件运用到计算机软件设计中,可以使软件设计的流程更加简单明了,预防并及时解决计算机中出现的问题,有效地提高计算机系统的整体应用效率。

关键词:嵌入式软件设计,计算机软件设计,应用

参考文献

[1]朱勇.计算机软件设计中嵌入式实时软件的应用探析[J].信息技术与信息化,2015,(8):66-67.

[2]马宇驰.计算机软件设计中嵌入式实时软件的应用探析[J].信息通信,2014,(4):104-104.

[3]张爱兵.计算机软件设计中嵌入式实时软件的应用探究[J].电子技术与软件工程,2014,(6):113-113.

[4]李禹松.嵌入式实时软件在计算机软件设计中的应用[J].硅谷,2013,(18):37-37.

[5]章慧云.嵌入式实时软件在计算机软件设计中的应用[J].信息技术与信息化,2014,(12):184-185.

嵌入式硬件设计论文 篇10

FPGA是通过逻辑组合电路来实现各种功能的器件。由于FPGA内部集成了大量的逻辑资源和可配置的I/O引脚, 加上独特的并行处理架构, 可以轻松实现同时对多个外部设备的配置和管理, 以及内外各种接口数据的传输。现在开发厂商又在FPGA内部加入了大量的DSP和Block RAM资源, 非常适合图像处理、数字信号处理等运算密集的应用, 因此在这些领域取得了广泛的应用。但是由于FPGA程序编写的灵活性和功能的多样性, 使得它在一个复杂工程中对各个程序的使用调度、统筹管理上有很大的局限性, 这样就必须引入操作系统进行统一的管理。Linux系统则因为其良好的可裁减、可配置等特点在嵌入式领域应用广泛。Linux操作系统提供了许多系统级的应用, 例如网络协议的实现、进程调度、内存管理等, 同时Linux是一个成熟的开源操作系统, 有丰富的应用资源, 利用这些资源和强大的系统功能, 用户可以快速地开发基于嵌入式环境复杂系统。因此, 结合FPGA和Linux双方优势, 可以很好地满足嵌入式系统设计需求, 量体裁衣, 去除冗余。本文给出了一种基于Xilinx FPGA的嵌入式Linux操作系统解决方案。

基于FPGA的嵌入式系统的硬件设计

本设计是基于Xilinx XC4VFX40系列F P G A, 它内部集成了两个Power PC405处理器, 4个10/100/1000M以太网MAC模块, 运行频率300MHz时, 具有420D-MIPS性能, 能解决高速网络数据传输问题, 并且能解决通过网络加载操作系统和交叉编译等问题。它内部有448个可配置I/O口, 2592kb BlockRAM, 能实现对各种外部设备的并行控制以及较多数据的存储与处理。加载一个操作系统, 一般需要几十兆的内存空间, FPGA内部自带的RAM空间是远远不够的, 本设计在板上扩展了两片MICRON公司的256Mb DDR内存, 作为上电时操作系统的加载和运行空间。现在主流的嵌入式操作系统, 都需要搭建交叉编译环境, 把在主机上编写好的可执行文件下载到目标板上, 这就需要实现网络数据的传输。由于XC4VFX40自带了以太网MAC模块, 只需要在外面添加个PHY芯片和带隔离器的RJ45接口就能实现这个功能。本设计由于对网络数据实时性要求很高, 因此采用Marvell公司的千兆以太网PHY芯片88E1111-RCJ。它能根据自身配置和主机设计, 实现10/100/1000M自适应传输, 并且Linux本身对这个芯片提供了驱动支持, 实现无缝链接。操作系统加载到DDR中能快速有效的运行, 但是掉电就会丢失, 因此必须加入FLASH芯片, 把系统文件存储到外部FLASH中。加电时, FPGA把操作系统文件从FLASH读入到DDR中运行。FPGA设计当然会扩展很多接口出来, 利用自身并行处理的优势, 控制很多外围设备, 本设计也不例外, 扩展了8个通用的GPIO, 2个PS/2接口, 1个USB接口, 1个AC97声卡接口, 1个HotLink接口, 以及4个RS422接口, 同时扩展了两个CPCI接口, 引出了16位数据地址线和Ethernet控制线, 整个系统的硬件框图如图1所示。

在进行电路设计时, 是以FPGA为核心, 向外扩展各种设备, 因此特别注意了FPGA各个引脚的连接。由于DDR和PHY芯片都需要提供+2.5V电压, 因此和DDR、PHY芯片连接引脚所在的BANK需要提供+2.5V电压参考, 并且不能接以LVTTL或LVCMOS为电压参考的引脚。重要快速的时钟信号必须接到全局时钟引脚上。由于FPGA需要通过外部FLASH启动操作系统, 需要并行配置, 以减少加载时间, 配置电路如图2所示。在DDR布线时, 数据和地址线需要走等长线, 数据线之间不能相差10Mil, 地址线要控制在20Mil以内, 时钟也需要走差分等长线, 长度应大于地址线, DDR各个信号还需要47Ω的并行端接, 改善信号质量。千兆PHY输出MDI信号也需要在顶层做差分等长, 不然在进行1000M数据传输时很可能不稳定。DDR和PHY需要完整的电源回路做参考, 电源层划分时也要特别注意, 其他电路做常规处理就可以了。

EDK和ISE软件设计

首先需要调用X i l i n x提供的EDK软件, 对各个模块加入必要的IPCORE, 以便操作系统能正常调用这些器件的驱动操作他们。本设计采用的是EDK10.1.2版本, PPC方面选用ppc405内核, 频率设定在300MHz, 同时需要添加中断输入引脚, 以便响应以太网、串口等外部中断, 其他使用默认设置。DDR控制器采用EDK提供的Multi-Port-Memory Controller模块, 需要设置DDR芯片厂商、大小和数据位数等, 特别指出的是, 要设置独立的两条PLB总线和PPC连接, 作为PPC的指令和数据总线。MAC单元需要加入XPS_LL_TEMAC模块来控制, 本设计需要设置PHY类型为GMII (千兆以太网) , 同时要指定物理地址和收发FIFO大小。FLASH单元需要加入xps_mch_emc模块, 同时设置FLASH类型和读写时间。为了方便调试, 还需要加入串口控制台模块, 本设计使用的是UartLite模块, 设置需要的波特率和校验类型。特别注意的是, 系统还需要时钟管理模块 (DCM) , 提供各个模块需要的不同时钟, 还要设置一段FPGA内部RAM区域, 放置PPC的.boot文件。外部这些模块都通过PLB总线和PPC通信, 需要统一编址, 一般把DDR内存空间地址分配到0x0开始, 整个系统的构建如图3所示。

本设计, 除了在EDK中搭建了操作系统必须的各种模块后, 还需要在ISE中编写各个时序电路程序, 因此把EDK中编写好的工程作为一个模块, 加入到ISE中, 然后统一编译, 这样生成了我们需要的完整功能的程序。特别指出的是, PPC405数据地址采用的是大端模式, 接入到ISE中时, 需要把数据颠倒位置, 如DATA[0:31]变为DATA[31:0], 才能正常读写。

Linux操作系统的加载与烧写

加载Linux操作系统需要利用EDK软件提供的板级升级包 (BSP) 配置内核。BSP包含了所选定处理器架构的属性文件以及相关硬件的驱动源文件。首先要在EDK Project Option中Project Peripheral Respository选项下设置Xilinx提供的gen-mhs-devtree/edk_lib库路径, 然后在软件平台设置中选择Dts模式, 编译更新升级包, 生成.dts配置文件。Dts文件包含了所有模块地址分配, 中断以及驱动信息, 把他加入到Linux内核中, 然后配置内核选项选择对应的处理器架构、所选硬件的驱动模块以及需要的其他内核模块, 之后再对完成配置的内核进行编译, 生成Linux的内核image文件。生成内核image文件之后, 还需要生成系统运行所需要的根文件系统。根文件系统中包含了嵌入式Linux系统的所有应用程序、库以及系统配置等相关文件。根文件系统中常用的程序和命令可利用开源软件Busybox构造。构造完成之后, 在Busybox生成的目录和文件的基础上再构造根文件系统的目录树, 并添加相关设备文件和配置文件以及系统运行时需要的脚本文件, 从而形成最终的根文件系统, ramdisk.image。把他拷贝到内核中的../arch/powerpc/boot目录下, 在linux2.6.x根目录下运行make zlmage.initrt, 生成最终的系统文件。需要指出的是, 在编译linux内核时, 需要设置好交叉编译环境:首先安装ELDK编译软件, 然后在编辑自己的帐户目录下的.bashrc (例如:/home/ppc/) 中加入下面内容:CROSS_COMPILE=ppc_4xx$PATH=$PATH:/home/ppc/PowerPc/ELDK/usr/bin:/home/ppc/PowerPc/ELDK/binexport CROSS_COMPILEPATH保存, 然后执行$source.bashrc把生成的zlmage.initrd文件通过EDK软件下的XMD调试窗口, 使用dow zlmage.initrd命令下载到DDR中, 然后运行run命令, 就正常启动Linux了。

程序下载到DDR中, 掉电后, 数据就丢失了, 不能保存和连续使用, 因此要把操作系统烧写到FLASH, 上电后让它能自动运行, 掉电后也不会丢失。EDK提供了专门的FLASH烧写工具Program Flash Memory, 首先要把zlmage.initrd文件转换为FLASH能识别的.SREC文件, 需要在EDK Shell下运行下面命令:

$powerpc-eabi-objcopy–I elf32-powerpc–O srec zImage.initrd.srec

第一次烧写F L A S H时需要把Program Flash Memory中Create Flash Bootlooder Application勾上, 让系统自动生成Bootlooder程序。操作系统烧写到Flash中后, 需要FPGA在上电后自动从FLASH读取操作系统数据, 然后自动运行, 这几需要把刚刚生成的bootloadr_0工程中的.elf加入到.bit生成新的配置文件, 使用EDK下的Updata Bitstream命令就能实现。最后把生成的.mcs文件烧写到FPGA PROM中, 上电后, 系统就能自动运行了。

设计结果与分析

在Linux系统正常加载后, 我们设计一个程序, 它通过以太网, 从上位机获得数据, 存入F P G A内部BlockRam中, 再在ISE中编写程序, 把获得的数据取出, 产生频率可变的波形发生器, 并回传发送的参数给上位机。

通过实验证明, 在FPGA加入操作系统后, 能轻松实现网络数据的收发, 并通过FPGA自身的逻辑, 产生我们需要的各种控制信号, 做到了系统的统一调度和各个功能的并行处理, 发挥了操作系统和FPGA各自的优势。但是也发现, FPGA下操作系统运行的频率不高, 最多600MHz, 中断响应间隔较长, 大约3ms左右, 系统上电启动时间较长, 大约40s左右, 这些都需要在今后设计中进一步完善和提升。

结语

本文介绍了基于FPGA的嵌入式Linux设计流程, 从硬件设计到Linux系统加载, 再到应用程序运行整个过程, 从中可以看出, 该设计既发挥了FPGA并行处理和多时序控制上的优势, 也发挥了嵌入式Linux系统调度和可裁剪性方面的优势, 还提高了这个系统的稳定行, 也减少了FPGA与外部高速总线连接的资源开销, 二者的结合, 既满足了嵌入式应用按需定制、量体裁衣的需求, 又能开发出稳定而功能强大的嵌入式系统, 在现在嵌入式系统开发中有很好的运用。

摘要:本文介绍了通过FPGA内部嵌入的Powerpc405处理器, 移植嵌入式Linux系统, 并和FPGA协调工作的软硬件实现过程。该系统既发挥了FPGA并行处理和多接口控制的优势, 也有效地融合了Linux系统在程序调度和稳定性方面的优势。

关键词:FPGA,Linux,嵌入式

参考文献

[1]Xilinx PowerPC405Processor Block Reference Guide.2006

[2]Xilinx Virtex-4User Guide.2005

[3]田耘, 胡彬.Xilinx ISE Design Suite10.x FPGA开发指南[M].北京:邮电出版社, 2008

[4]师若鸣, 姜中华.Fedora Core2系统配置与管理[M].北京:清华大学出版社, 2005

[5]卢敏等.基于Linux的SoPC应用系统设计[J].计算机技术与应用, 2007 (6)

嵌入式家庭网关的安全性设计 篇11

摘要:针对日益流行的家庭网络与Intemet连接通信的安全问题,文章对现有对家庭网络的安全隐患进行了探讨,并提出了一个安全体系结构——嵌入式家庭网关,该模型以嵌入式防火墙以及公钥加密技术为核心,在家庭网络与互联网之间通信提供了一个较为安全的环境。

关键词:嵌入式家庭网关家庭网络防火墙Kerberos认证公钥加密

0引言

当今社会逐渐进入网络时代,因特网已成为重要的基础信息设施,它是目前覆盖范围最大的计算机网络。同时大部分网络终端仍以PC形式出现,但是从计算机应用普及的情况来看,嵌入式系统更为普及。嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它一般用于实现对其他设备的控制、监视或管理等功能。还有一个较为相近的概念就是嵌入式设备,它是内部有嵌入式系统的产品、设备,例如,信息家电等。

科学技术的进步和社会发展水平的提高,传统家电已逐渐无法满足现代家庭的需要,各种家电设备无法自动获取外界的信息。大量的嵌入式设备急需网络连接来提升其服务能力和应用价值,PDA、移动电话的GPS、TV机顶盒、微波炉、空调、数码相机等嵌入式设备都要求与Internet相连接以实现家庭网络与外界的信息沟通。于是将嵌入式系统与网络结合起来成为必然,它可使微波炉、空调等嵌入式设备都通过家庭控制中心与Internet连接,转变为一个家电网络。-

1安全威胁

家电网络(E Home)通常是指连接了家庭内部多种设备和电器(目前多都采用嵌入式设备)的较小地理区域网络,在一个家庭中建立一个通信网络,为家庭信息提供必要的通路:在家庭网络操作系统的控制下,通过相应的硬件和执行机构,实现对所有家庭网络上家电和设备的控制和监测。

由于要使嵌入式系统具备网络功能,即我们所指的家电网络与Jntemet连接,就会存在与普通计算机与Internet相连后相同的安全问题。目前网络上存在着一些常见的安全威胁与攻击,主要有几下几种:

1.1网络监听,通过监听和分析网络数据包来获取有关重要信息,如用户名和口令、重要数据等:

1.2信息欺骗,通过篡改、删除或重放数据包进行信息欺骗;

1.3系统入侵,通过网络探测、IP欺骗、缓冲区溢出、口令破译等方法非法获取一个系统的管理员权限,进而安放恶意代码(如木马、病毒等)、获取重要数据或实施系统破坏;

1.4网络攻击,通过拒绝服务、计算机病毒等方法攻击一个系统,使其处于瘫痪或崩溃。

因此连接到Internet上的每一个设备都需要在其网络入口处采取一定的安全措施来阻止和丢弃恶意的通信数据,嵌入式设备也不例外。所以对于有各种嵌入式家电设备所组成的家电网络来讲,我们使用嵌入式家庭网关来解决其安全问题。

2嵌入式家庭网关

2.1家庭网关的作用家庭网络采用的是轻量级网络协议,要实现它与TCP/JP网络之间的互联,必须有一个用来完成协议转换的设备(或功能部件)作为两种网络连接的桥梁,家庭网关的作用也就在于此。从安全上看,家庭网关是对家中设备进行集中管理(包括设备使用、设备安全等),防止家庭网络受到外部网络的威胁;从结构上看,家庭网关是家庭外部的TCP/IP网络和家庭嵌入式设备网络这两个网络之间的连接点。

一般采用PC来实现家庭网关,虽然这种方法有很多优点(如,软件支持丰富、TCP/IP网络支持较好等),但它也有诸如体积大、功耗大、成本高等不足,所以我们采用嵌入式网关来实现家庭网关。用嵌入式系统来实现家庭网关称为嵌入式网关,因此它同样具有嵌入式的以应用为中心、软硬件可裁减、功耗低等特点,并且具有模块化设计的设计思想,因此我们可以根据网络的不同需要配置不同的网关。

此嵌入式家庭网关不仅具有普通网关的功能(这里我们不再赘述),还增加了嵌入式防火墙以及通信中信息加密能力。家庭网关整体的基本结构如图2所示。即可将网关分为三个部分:TCP/IP协议栈、安全机制和家庭网络协议栈,三部分之间只需通过简单的数据通信接口即可实现连接通信。

2.2嵌入式防火墙(EF)在家庭网络与Internet通信的过程中,防火墙是必不可少的,因此家庭网关应具有防火墙能力,可避免外接网络对家庭内部设备的非法访问和攻击。家庭嵌入式防火墙是一种提供访问控制手段的设备,集成了解决网络安全问题的各种应用,为家电网络以及资源提供了一个可管理的安全的计算环境,并且它使用了简化的、基于公钥的Kerberos协议已实现透明认证。

EF核心系统一般可分为4个主要部件:客户认证代理、嵌入式防火墙代理、票据授予服务器(TGS)和认证服务器(AS)。

客户认证代理的主要功能是申请各种服务前向AS和TGS请求相应的票据,并在申请服务是发出相应的票据。在必要场合,它还将负责反向验证服务器票据的合法性,实现双向认证。它接受用户登录,并透明地实现Kerberos票据的申请以及转发,构成了Kerberos实体;嵌入式防火器代理主要用于验证客户发送的票据,以决定是否将TCP连接请求或UDP包送往更高层进行处理,它构成了Ker-beros的应用服务器实体;TGS和AS的功能与Kerberos协议中的基本一致,不再赘述,详细资料请查阅相关文献。

2.3信息加密在家中设备与外部网络通信时,为防范网络监听、口令破译、信息篡改等入侵,还需在家庭网关中实现密码保护功能,对家庭网络内部嵌入式设备及其发送的数据进行加密。加密这种较强有力的手段,能为数据提供保密性、真实性、完整性和限制性访问。当今密码学的应用已非常广泛,常见的加密算法有:对称密码、非对称密码以及消息摘要(单向散列函数)算法。这里,我们仍然使用非对称密码算法(即公钥加密)。

2.4其他家庭网关要连接两个网络,还需要实现与这两种网络相对应的协议栈——TCP/IP协议栈和家庭网络协议栈。可采用模块化设计,将功能模块再组合从而形成新的功能设备。因为家中设备只为增添新型功能,对网络的要求较为简单,所以不需要具备完整的协议栈,因此家庭网络协议栈也可以利用嵌入式技术,设计成一个嵌入式家庭网络协议栈,详细内容不是本文的重点,所以不做过多介绍。

当然,我们提出的网关设计仍存在诸如协调防火墙与加密技术之间的关系等需要改进和完善的地方,一些关系还有待进一步研究和完善。

3结束语

嵌入式硬件设计论文 篇12

关键词:嵌入式系统,象棋机器人,硬件设计

0 引言

机器人技术作为20世纪最突出的人类发明之一,人类在这一方面不断加深研究,获得了巨大的进步,在发展的过程中,也在不断调整着机器人技术的发展方向,目前,机器人技术的发展方向主要是智能化、独立化。随着社会经济不断发展,人们的生活水平不断提高,中国象棋也逐渐成为一种娱乐方式,人们享受着它的乐趣。象棋机器人这一智能娱乐机器人为人们提供象棋对弈,使人们在对弈过程中充分享受象棋的乐趣。智能象棋机器人为了实现与人对弈就需要会“观察”棋盘变化,并针对变化做出“决策”,以获得最终胜利为目标,为了实现这一功能,智能象棋机器人的控制系统起着关键作用,控制系统的运行及实现与硬件是不可分割的,因此硬件设计也是十分重要的。

1 系统设计的设计原则

为了实现系统各功能模块之间的协调运作,使系统高效运行,在设计时提出以下几点原则:

第一,硬件设计实行模块化。根据象棋机器人系统的不同功能模块,可将整个系统分成图像处理模块、ARM控制模块以及机械臂运动控制模这三大模块。因此为了节约成本、提高系统可靠性,在进行机器人控制系统的硬件设计时也以这三个模块为划分进行设计,这样也实现了抑制的功能分析,同时也降低了设计的难度。

第二,接口设计方面实现标准化。在进行接口设计时,为了提高控制系统硬件的可扩展性,一般采用的都是标准接口,同时标准接口的相关参考资料在查找时也比较容易而且较多,这样也有利于编写系统驱动程序,甚至在编写某些接口的驱动程序时采用已完成的程序不必再重新编写,这样也直接缩短了系统的开发周期,有利于提高系统运行的可靠性、稳定性。

第三,进行更具扩展性的电路设计。在电路设计的过程中留下可扩展及修改的余地,因为硬件在升级的时候不像软件那么方便,只需对数据处理模式及算法进行修改或增加。为了实现系统的大幅度性能提升,硬件的升级需要进行较大的修改,因此在进行硬件设计时尽量留下多余空间,方便以后的修改和扩充。

第四,芯片选型时依据可靠性原则。在为系统进行芯片选型时上不能以最新或是功能最强为目标,而应以可靠性作为选取原则,更优先的选择已经被实践证明过的可靠性、稳定性更好的芯片。一般而言,最新的芯片没有经过实践极有可能会在运用过程中出现BUG,而且与它相匹配的相关技术可能没有完善,因此如果过于盲目的去追求最新、最强的芯片就可能给系统开发留下缺憾。

2 硬件设计

象棋机器人ARM控制系统的硬件部分通常分为两大模块:核心模块和扩展模块。两大模块的连接是通过SO-DIMM200标准接口实现,这样一来可以实现快速拆分。硬件的核心模块通常包含晶振、S3C2410、NOR FLASH.NAND FLASH、SDRAM等基本部件,主要组成了系统的电源电路、系统时钟电路、复位电路等电路模块。硬件的扩展模块通常包含电源接口、以太网接口、键盘鼠标接口、RS232接口等。进行硬件设计时主要设计步骤如下:

第一,进行芯片选型。在进行CPU处理器选型时,应该选取目前使用最为广泛是当前使用主流的,充分考虑外围设备及处理器的性能,选择性价比及具有较高稳定性的芯片,选取外围器件时也应该使用被广泛使用过的,选取高性价比便于采购的,同时所选择的外围器件要具有可替代性,方便替代更换。

第二,进行核心板电路设计。核心电路设计是进行系统硬件设计的关键过程,核心电路板由CPU、NOR Flash、NAND Flash、电源、系统时钟、复位等多部分构成。选取好核心板芯片后,芯片的内部控制器能够提供足够的硬件资源地址给外部存储器,因此对硬件资源地址进行合理分配对核心电路的设计很重要。核心板电路设计时需对每一部分进行设计,包括核心板电源电路、存储器电路等等。

第三,进行扩展板电路设计。扩展板电路设计时也是对各部分进行电路设计,包括电源电路、HPI接口电路、USB接口电路等等。

第四,进行PCB板设计。PCB板的设计通常是按照一定流程来进行。首先,进行前期准备,前期准备主要包括建立元件库及绘制原理图。其次,进行PCB结构设计,根据事先确定的所有机械定位及电路板尺寸,进行PCB板面绘制,将所需接插件、螺丝孔等按相关定位要求进行放置。然后进行PCB布局,利用生成的网络表进行下一步的器件布局,将原件即美观又科学合理的布置到电路板上,通常是进行手工布局,会需要较长时间。为了完成PCB板设计,还需要进行中间层的定义及设计、设置布线规则并进行合理布线及优化、分割内电层,最后进行DRC检查及文件的输出。

第五,进行电路的抗干扰设计。因为高速电路可能会导致电磁兼容及信号完整性的问题出现,因此需要进行电路的抗干扰设计,一般采用干扰滤波、接地等技术解决电磁兼容的问题。为了保证信号完整性,一般在设计的时候考虑电源滤波及地弹效应,通常使用去耦电容法解决地弹效应,为了降低系统噪声,应尽量使高速芯片的电源引脚靠近电源,还可在电源上加上一个10μF的电容消除电源引起的低频噪音。

3 总结

本文主要对基于ARM的嵌入式象棋机器人控制系统的硬件设计原则及设计过程进行了研究,有利于象棋机器人控制系统的进一步发展,为象棋机器人的控制系统升级提供了一定的意见,象棋机器人的发展提高了人们的生活水平。

参考文献

[1]杜春雷.ARR.M体系结构与编程[M].北京:清华大学出版社,2003;

[2]张箭.32位嵌入式系统硬件设计与调试[M].北京:机械工业出版社.2005;

上一篇:“三点到位”教学思想下一篇:出版业知识经济