格物往事

嵌入式硬件设计必备基础知识

一、嵌入式电脑体系结构

电脑能用来干什么?他必须完成什么任务?他是如何实现和人和其他系统交互的?这决定了这台电脑的功能,进而决定了其体系结构、存储器和I/O。

电 脑系统大致分为两类。第一类就是您现在手上用的电脑,最常见的台式电脑。再就是,您最近有没有用全自动洗衣机洗衣服,把衣服往里面一扔(别忘了放洗衣粉, 我就常常忘),只消按一个键便高枕无忧了,这里面就有一个第二类电脑:嵌入式电脑,这种电脑往往作为控制和/或监控目的的而集成到另外的系统中(比如洗衣 机)。那这样说来我们身边岂不满是电脑?电视机、DVD、遥控器、手机、甚至玩具?就是他们!

一台专用的台式电脑(不一定是PC)有很大 的主内存来支持操作系统、应用程式和数据,连同一个大容量存储设备(硬盘、DVD/CD-ROM等)的接口。这种台式电脑带有各种各样的I/O设备以便用 户输入(键盘、鼠标和话筒)、输出(显示器及耳机)连同互联(网络和外设)。快速的处理器需要一个系统管理器来监控其核心温度、供给电压连同进行系统重 启。

大规模嵌入式电脑也可能采用上述的形式。例如,他可能作为一个网络路由器或网关从而需要一个或多个网络接口、大容量内存连同快速操 作。他们也可能需要某种形式的用户界面来作为嵌入式应用的一部分。或在许多情况下,他们也可能只是专用于某一特定任务的常规电脑。因此,单就硬件而言,许 多高性能嵌入式系统和常规台式机没有什么大的差别。

较小的嵌入式系统使用微控制器作为他们的处理器,这样做的长处在于处理器能够将很多的电脑功能包含在一个芯片上。

微 控制器至少有一个CPU,一个小容量的内部存储器(ROM和/或RAM)连同作为子系统模块在微控制器内部实现的某种I/O。这些子系统为处理器提供了附 加功能,许多处理器通常都有这种子系统。您经常能够在微处理器里发现这些子系统,这些子系统最普通的I/O是数字I/O,他们都是端口,能够以引脚为基 础,由软件配置成数字输入或输出。作为数字输入,这些端口能够用来读取开关或按钮的状态连同读取另外一个设备的数字状态;作为数字输出,他们能够用来开启 或关闭外部设备,也能够向外部设备传达工作状态。例如,一个数字输出端口能够为一个电机激活控制电路,开/关灯,或可能的话还能够触发诸如花园浇灌系统的 水压阀这样的设备,当然也控制洗衣机。将数字输入/输出端口结合在一起能够用来合成对其他芯片的接口和协议。除了数字I/O外,大多数控制器更有其他子系 统。而假如无需其他子系统的功能,那么微控制器本身也能将其他子系统转换到通用数字I/O。作为一个系统设计者,这就为您在所设计的应用里如何使用微控制 器提供了多种选择。

许多微控制器也有模拟输入,允许为监控或记录目的的传感器进行采样。这样,一台嵌入式电脑就能够用来测量光强、温度、震动或加速度,大气或水的压力,湿度或磁场之类的项目。或,这些模拟输入能够用来监测简单的电压,或许用来确保较大规模系统的可靠操作。

有 些微控制器有串口,通过串口,嵌入式电脑能够和一台主机、另外的嵌入式系统或也许是个简单的网络进行连接。诸如SPI和I2C这样的专用形式的串行接口, 为扩展微控制器的功能提供了一种简单的方法。这些串口允许外部设备和微控制器连接起来,为诸如片外存储器(用于数据或参数存储)、时钟/日历芯片、带数字 接口的传感器、外部模拟输入或输出,甚至音频芯片及其他微处理器提供了访问途径。

大多数微控制器都带有***和计数器,用来在固定的时间间隔里为多任务处理产生内部中断,为片外系统提供外部触发,或为电机提供控制脉冲。或用来为来自其他设备的外部触发(脉冲)计数。

有少数的微控制器也包含诸如USB、以太网、或CAN这类的网络接口。

一 些比较大的微处理器还提供一个总线接口,将内部地址、数据和控制总线展现给外部世界。这就使得处理器能够以和常规处理器近乎同样的方式和大量可能的外部设 备进行连接。前面所描述的任何可能的设备和接口都能够通过总线接口和适当选择的外部设备来实现。总线接口为微控制器带来了巨大的发展潜力。

各 个微控制器具备的I/O子系统的组合差别相当大。有些微控制器针对简单的数控应用,可能只含有数字I/O;其他的一些微控制器可能面向工业应用,因此可能 有数字I/O、模拟输入、电机控制连同网络连接等。微控制器(几千个种类)的选择依赖于您的处理需要和接口需求,请选择一款最合适的一款。

以后将选取三星公司生产的以ARM7TDMI为核心的S3C4510B为例讲解基于他的电路设计连同程式设计。

名词解释:

系 统体系结构:单个处理器是不能完成任何任务的,还需要存储器(用于程式核数据存储)、支撑逻辑连同至少一个I/O设备(输入/输出设备),用以实现电脑系 统于外界之间的数据传输。电脑系统的存储器包含了处理器将要执行的指令连同将要操作的数据。指令由电脑系统从存储器里读取,而数据则能够读出和写入存储 器,上述形式的电脑结构就是冯.诺伊曼体系结构。冯.诺伊曼电脑能够归类为控制流电脑,在这种体系结构中,电脑的执行步骤由程式的顺序控制所管理。另有一 种为哈佛体系结构,其指令和数据具备不同的内存空间。

总线:所谓总线,就是具备相关功能的信号线的物理集合。总线允许在电脑系统的不同部 件之间传输电子信号,因此可把信息从一个设备传输到另外一个设备上。当今的多数微处理器采用了三总线系统体系结构,分别为地址总线、数据总线和控制总线。 数据总线是双向的,具体的传输方向由处理器决定。地址总线传输的是地址信息,这一地址指向微处理器想要访问的内存单元。控制总线携带来自处理器的当前访问 状态信息,如写操作还是读操作。控制总线也将当前访问状态信息返回给处理器,例如地址错误等。

硬件设计背景知识

二、关于电子学的一些东西

模拟信号

一个模拟信号能够拥有一定范围内任何电压的幅值,而不像数字信号那样只能处于两种定义电压状态(要么低电平,要么高电平)之一。如波形为正弦曲线的正弦信号。

信号的电压能够随时间的推移而变化,或为常量。假如电压是变化的他会每隔一定时间就重复,这种情况下就说这种信号有周期性。这个周期就是信号模式重复的时间间隔(例如,从一个波峰到另外一个波峰)。信号的频率就是每秒钟信号模式重复的次数。

频率的单位是赫兹(单位符号为Hz),他和周期有如下关系:

   f = 1 / T (f : 频率 T: 周期)

这样,周期为1ms的信号,其频率就是1KHz。

单极信号组成的电压,要么全正要么全负。双极信号具备正和负两种电压。

典 型的模拟信号既有交流(Alternating Current, AC)分量又有直流(Direct Current, DC)分量,DC分量是信号的固定电压,而AC分量则是个加在DC分量上的变化着的电压。AC分量通常是指信号的峰
-峰振幅,一般以后缀pp来表示。例 如,一个5V的AC分量能够写作5Vpp。

电阻

连接到电源的电阻提供高电平信号,称为”上拉电阻”。
连接到地的电阻提供低电平信号,称为”下拉电阻”。

RC电路

把电容和电阻结合起来会产生一些有趣和有用的效果。一个电阻-电容的结合就是所谓的一个RC电路,他们的结合有三种形式。

在第一种形式中,电阻和电容并联在一起。这种结合能用来做什么呢?施加在这两个元件上的电压(V)将对电容充电(也会有一些电流穿过电阻)。当所施加的电压撤去时,电容便会通过电阻释放电容。电阻将限制电荷释放的速率,因为电阻限制了电流。

第 二种形式的RC电路为串联RC电路,当一个电压加到RC电路输入端(靠近电阻端)时,电流就会通过电阻,电容也会开始充电。然而电阻限制了电流,进而限制 了电容充电的速率。这种类型的RC电路是个简单的低通滤波器。这种电路能将信号的高频分量滤掉,从而在主信号中削弱他们,而低频分量没有任何衰减。这种类 型的电路对于去掉叠加在信号上的高频噪声来说很有用。

任何处理器和外部设备芯片的每个输入引脚上都会有少量的输入电容。输入电容连同电路 连接固有的微小阻抗连同引脚的输入阻抗一起意味着施加在引脚上的数字电压实际上呈指数增长,而不是(数字的)陡然上升的。这种影响很小,但在高速电路中, 或当几个设备连接到同一个信号线上而任何的输入电容不可忽略时,这种影响就很大了。

输入端的感应作用会引起另外的一个特性。当源电压突然变化时,电感应作用导致”阻尼振荡”。

第三种形式的RC电路仍是RC串联,但输入电压靠近电容端。这种类型的电路是个简单形式的高通滤波器,因为他只输出高频信号。这种电路里的电容通常被称作隔直流电容。

时钟和振荡器

任何的处理器都需要时钟。所谓的时钟就是来自振荡器的输出,这一输出管理着处理器连同其他和时钟相关的任何系统事件。其实时钟就是个数字脉冲流。

任 何处理器都有一个最大和最小时钟频率。这表明了振荡器驱动处理器的频率范围。我们说最小时钟速率为零的处理器具备静态操作(Static Operation)或DC操作。这意味着处理器能够使时钟停下来,也能在稍后的时刻重新启动操作而不受影响。假如处理器的最小操作频率大于零值,那么称 该处理器具备动态操作。假如振荡器的频率低于上述动态处理器的最小频率值,那么处理器的寄存器的内存有可能会被破坏掉。

产生时钟的方式有 好几种,有些处理器期望一个数字(方波)时钟输入。对于以通用频率运行的处理器——大多数处理器都属于这类,最好的选择是采用一个名为振荡器模块的设备。 另外许多处理器都包含振荡器电路,并且通常只需要增加一个晶体和旁路电容即可。这里的电容用来去除来自振荡的高次谐波。

数字信号

一 个数字设备的输出引脚可能处于下列三种状态之一:高电平(逻辑1)、低电平(逻辑0)、或三态(高阻态,也叫漂移)。当引脚上的输出电压高于一个给定阈值 时就定义为逻辑高电平。当一个设备的引脚输出为高时,这一引脚就对其连接提供电流(sourcing current)。同样地,当输出电压低于给定阈值时就定义为逻辑低电平,我们称设备的引脚吸收电流(sinking current)。典型情况是,元件吸收的电流多于他所提供的电流。

一个三态引脚的输出既不是高电平也不是低电平,而是高阻状态,这样流 入或流出该引脚的电流都被忽略。实际上,流入或流出该引脚的电流对于和这一引脚相连的其他元件而言是不可见的。例如,电脑系统中可能有好几个存储设备连接 到数据总线,当从一个设备读取数据时,他的数据输出要么为高电平要么为低电平。系统内任何其他的存储设备,由于他们未被访问,因此会把他们的数据总线置为 三态,不会参和处理器和被访问存储器之间的读数据处理。

电压阈值

TTL(Transistor-Transistor Logic, 晶体管-晶体管逻辑)系列的电压定义:低电平,输入最高电压为0.8V,输出最高电压为0.4V;高电平,输入最低电压为2.0V,输出最低电压为 2.4V。处理器不同规定就不同,所以器件的电气(和时序)规和列在产品手册里。

退出移动版