嵌入式应用系统设计与调试

发布 2022-10-21 08:45:28 阅读 7180

本章主要介绍基于s3c4510b的硬件系统的详细设计步骤、实现细节、硬件系统的调试方法等,通过对本章的阅读,可以使绝大多数的读者具有根据自身的需求、设计特定应用系统的能力。

尽管本章所描述的内容为基于s3c4510b的应用系统设计,但由于arm体系结构的一致性、以及外围电路的通用性,本章的所有内容对设计其他基于arm内核芯片的应用系统,也具有很大的参考价值。

本章的主要内容包括:

嵌入式系统设计的基本方法。

s3c4510b概述。

s3c4510b的基本工作原理。

基于s3c4510b的硬件系统设计详述。

硬件系统的调试方法。

根据用户需求,设计出特定的嵌入式应用系统,是每一个嵌入式系统设计工程师应该达到的目标。嵌入式应用系统的设计包含硬件系统的设计和软件系统设计两个部分,并且这两部分的设计是互相关联、密不可分的,嵌入式应用系统的设计经常需要在硬件和软件的设计之间进行权衡与折中。因此,这就要求嵌入式系统设计工程师具有较深厚的硬件和软件基础,并具有熟练应用的能力。

这也是嵌入式应用系统设计与其他的纯粹的软件设计或硬件设计最大的区别。

本章以北京微芯力科技****(设计生产的arm linux评估开发板为原型,详细分析系统的软、硬件设计步骤、实现细节以及调试技巧等。arm linux评估开发板的设计以学习与应用兼顾为出发点,在保证用户完成arm技术的学习开发的同时,考虑了系统的扩展、电路板的面积、散热、电磁兼容性以及安装等问题,因此,该板也可作为嵌入式系统主板,直接应用在一些实际系统中。

图5.1.1是arm linux评估开发板的结构框图,各部分基本功能描述如下:

串行接口电路用于s3c4510b系统与其他应用系统的短距离双向串行通讯;

复位电路可完成系统上电复位和在系统工作时用户按键复位;

电源电路为5v到3.3v的dc-dc转换器,给s3c4510b及其他需要3.3v电源的外围电路供电;

10mhz有源晶振为系统提供工作时钟,通过片内pll电路倍频为50mhz作为微处理器的工作时钟;

flash存储器可存放已调试好的用户应用程序、嵌入式操作系统或其他在系统掉电后需要保存的用户数据等;

sdram存储器作为系统运行时的主要区域,系统及用户数据、堆栈均位于sdram存储器中;

10m/100m以太网接口为系统提供以太网接入的物理通道,通过该接口,系统可以10m或100mbps的速率接入以太网;

jtag接口可对芯片内部的所有部件进行访问,通过该接口可对系统进行调试、编程等;

iic存储器可存储少量需要长期保存的用户数据;

系统总线扩展引出了数据总线、地址总线和必须的控制总线,便于用户根据自身的特定需求,扩展外围电路。

图5.1.1 arm linux评估开发板的结构框图。

在进行系统设计之前,有必要对arm linux评估开发板上的arm芯片s3c4510b及其工作原理进行比较详细的介绍,读者只有对该微处理器的工作原理有了较详细的了解,才能进行特定应用系统的设计。

samsung公司的s3c4510b是基于以太网应用系统的高性价比16/32位risc微控制器,内含一个由arm公司设计的16/32位arm7tdmi risc处理器核,arm7tdmi为低功耗、高性能的16/32核,最适合用于对**及功耗敏感的应用场合。

除了arm7tdmi核以外,s3c4510b比较重要的片内外围功能模块包括:

2个带缓冲描述符(buffer descriptor)的hdlc通道。

2个uart通道。

2个gdma通道。

2个32位定时器。

18个可编程的i/o口。

片内的逻辑控制电路包括:

中断控制器。

dram/sdram控制器。

rom/sram和flash控制器。

系统管理器。

一个内部32位系统总线仲裁器。

一个外部存储器控制器。

s3c4510b结构框图如图5.2.1所示。

图 5.2.1 s3c4510b结构框。

s3c4510b的特性描述如下:

体系结构。 用于嵌入式以太网应用的集成系统。

全16/32的risc架构。

支持大、小端模式。内部架构为大端模式,外部存储器可为大、小端模式。

内含效率高、功能强的arm7tdmi处理器核。

高性价比、基于jtag接口的调试方案。

边界扫描接口。

系统管理器。

支持rom/sram、flash、dram和外部i/o以8/16/32位的方式操作。

带总线请求/应答引脚的外部总线控制器。

支持edo/常规或sdram存储器。

可编程的访问周期(可设定0~7个等待周期)

4字的写缓冲。

高性价比的从存储器到外围的dma接口。

一体化的指令/数据cache

一体化的8k cache

支持lrc(近期最少使用)替换算法。

cache可配置为内部sram

iic接口。

仅支持主控模式。

串行时钟由波特率发生器生成。

ethernet控制器。

带猝发模式的dma引擎。

dma发送/接收缓冲区(节发送,节接收)

mac发送/接收fifo缓冲区(80字节发送,16字节接收)

数据对准逻辑。

支持端模式变换。

100m/10mbps的工作速率。

与ieee802.3标准完全兼容。

提供mii和7线制10mbps接口。

站管理信号生成。

片内cam(可达21个目的地址)

带暂停特性的全双工模式。

支持长/短包模式。

包拆装pda生成。

hdlc (high-level data link control) 高层数据链路协议

hdlc协议特征:标志检测与同步;零插入与删除;空闲检测和发送;fcs生成和检测(16位);终止检测与发送。

地址搜索模式(可扩展到四字节)

可选择crc模式或非crc模式。

用于时钟恢复的数字pll模块。

波特率生成器。

发送和接收支持nrz/nrzi/fm/曼切斯特数据格式。

回环与自动回波模式。

8字的发送和接收fifo

可选的1字或4字数据传送方式。

数据对准逻辑。

可编程中断。

modem接口。

高达10mbps的工作速率。

基于8位位组的hdlc帧长度。

每个hdlc有2通道dma缓冲描述符用于发送和接收。

dma控制器。

用于存储器到存储器、存储器到uatr、uatr到存储器数据传送的2通道通用dma控制器,不受cpu干预。

可由程序或外部dma请求启动。

可增减源地址或目的地址,无论8位、16位或32位数据传输。

4种数据猝发模式。

uart 2个可工作于dma方式或中断方式的uart模块。

支持位的串行数据发送和接收。

波特率可编程。

1位或2位停止位。

奇/偶校验。

间隔信号的生成与检测。

奇偶校验、覆盖和帧错误检测。

×16时钟模式。

支持红外发送和接收。

定时器。 2个可编程32位定时器。

间隔模式或触发模式工作。

可编程i/o口。

18个可编程i/o口。

可分别配置为输入模式、输出模式或特殊功能模式。

中断控制器。

21个中断源,包括4个外部中断源。

正常中断或快速中断模式(irq、fiq)

基于优先级的中断处理。

pll 外部时钟可由片内pll倍频以提高系统时钟。

输入频率范围:10~40mhz

输出频率可以是输入时钟的5倍。

工作电压。 3.3v,偏差不超过5%

工作温度。 0oc~70oc

工作频率。 最高为50mhz

封装形式。 208脚qfp封装。

图5.2.2是s3c4510b的引脚分布图。

图5.2.2 s3c4510b的引脚分布图。

各引脚信号描述如下:

cpu内核概述。

s3c4510b 的cpu内核是由arm公司设计的通用32位arm7tdmi微处理器核,图5.2.3为arm7tdmi核的结构框图。

整个内核架构基于risc(reduced instruction set computer)规则。与cisc(complex instruction set computer)系统相比较,risc架构的指令集和相关的译码电路更简洁高效。

arm7tdmi处理器区别于其他arm7处理器的一个重要特征是其独有的称之为thumb的架构策略。该策略为基本arm架构的扩展,由36种基于标准32位arm指令集、但重新采用16位宽度优化编码的指令格式构成。

由于thumb指令的宽度只为arm指令的一半,因此能获得非常高的**密度。当thumb指令被执行时,其16位的操作码被处理器解码为等效的32位标准arm指令,然后arm处理器核就如同执行32位的标准arm指令一样执行16位的thumb指令。也即是thumb架构为16位的系统提供了一条获得32位性能的途径。

arm7tdmi内核既能执行32位的arm指令集,又能执行16位的thumb指令集,因此允许用户以子程序段为单位,在同一个地址空间使用thumb指令集和arm指令集混合编程,采用这种方式,用户可以在**大小和系统性能上进行权衡,从而为特定的应用系统找到一个最佳的编程解决方案。

图5.2.3 arm7tdmi核的结构框图。

32位的arm指令集由13种基本的指令类型组成,可分为如下四大类:

- 4类分支指令用于控制程序的执行流程、指令的特权等级和在arm**与thumb**之间进行切换。

- 3类数据处理指令用于操作片上的alu、桶型移位器、乘法器以完成在31个32位的通用寄存器之间的高速数据处理。

- 3类加载/存储指令用于控制在存储器和寄存器之间的数据传输。一类为方便寻址进行了优化;另一类用于快速的上下文切换;第三类用于数据交换。

嵌入式linux与嵌入式系统设计

ustc bbs embedded斑竹d j主讲。感谢hongtao chen以及networking斑竹jun zxjun的大量幕后工作!感谢james zhang以及网络中心提供聚会的场地和大力支持!欢迎访问我的主页。聚会详情如下 名称 嵌入式系统设计以及嵌入式linux展望 时间 本周星期天 ...

嵌入式嵌入式系统原理与设计

第六章 iic总线。一 iic总线介绍 i2c总线 1.结构。2.工作原理 a b 主机 主设备 负责生成scl时钟,同时负责发出其实信号s和终止信号p 从机 从设备 被主机寻址的器件。1 a检测i2c总线是否 空闲 如果空闲 高 a发出起始信号 scl高,sda 2 寻址选择目标器件b,发送7位地...

嵌入式嵌入式系统原理与设计

课前提问 xscale 内核,intel公司。arm7 内核,第七个版本。armv5te 指令集,v5版本,加入16位thumb指令集,加入dsp指令集。cortex m3 内核,arm公司,arm11之后开始以cortex命名 5.几款arm处理器内核比较 arm11比arm10主频高,能耗低,所...