第2章--驱动设计的硬件基础

一、处理器

1. 通用处理器

目前主流的通用处理器多采用 SoC(片上系统)的芯片设计方法,集成了各种功能模块,每一种功能都是由硬件描述语言设计程序,然后在 SoC 内由电路实现的。
中央处理器的体系结构可以分为两类,一类为冯·诺依曼结构,另一类为哈佛结构。
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。
而哈佛结构将程序指令和数据分开存储,指令和数据可以有不同的数据宽度。
此外,哈佛结构还采用了独立的程序总线和数据总线,分别作为 CPU 与每个存储器之间的专用通信路径,具有较高的执行效率。

2. 数字信号处理器

数字信号处理器(DSP)针对通信、图像、语音和视频处理等领域的算法而设计。它包含独立的硬件乘法器。
DSP 的乘法指令一般在单周期内完成,且优化了卷积、数字滤波、FFT(快速傅里叶变换)、相关矩阵运算等算法中的大量重复乘法。

二、存储器

1. 只读存储器(ROM)

ROM 分为不可编程ROM、可编程ROM(PROM)、可擦除可编程ROM(EPROM)和电可擦除可编程ROM(E2PROM),E2PROM 完全可以用软件来擦写,已经非常方便了。

2. 闪存(Flash)

FLASH分为NOR FLASH和NAND FLASH。
NOR Flash 和CPU的接口属于典型的类SRAM接口,不需要增加额外的控制电路。NOR Flash的特点是可芯片内执行,程序可以直接在NOR内运行。
NAND Flash和CPU的接口必须由相应的控制电路进行转换,当然也可以通过地址线或GPIO产生NAND Flash接口的信号。NAND Flash以块方式进行访问,不支持芯片内执行。
与NOR Flash的类SRAM接口不同,一个NAND Flash的接口主要包含如下信号。

  • I/O 总线:地址、指令和数据通过这组总线传输,一般为 8 位或 16 位。
  • 芯片启动(CE#):如果没有检测到 CE 信号,NAND 器件就保持待机模式,不对任何控制信号做出响应。
  • 写使能(WE#):WE# 负责将数据、地址或指令写入 NAND 之中。
  • 读使能(RE#):RE# 允许数据输出。
  • 指令锁存使能(CLE):当 CLE 为高电平时,在 WE# 信号的上升沿,指令将被锁存到 NAND 指令寄存器中。
  • 地址锁存使能(ALE):当 ALE 为高电平时,在 WE# 信号的上升沿,地址将被锁存到 NAND 地址寄存器中。
  • 就绪 / 忙(R/B#):如果 NAND 器件忙,R/B# 信号将变为低电平。该信号是漏极开路,需要采用上拉电阻。

3. 随机存取存储器(RAM)

RAM 分为静态RAM(SRAM)和动态RAM(DRAM)。
DRAM 以电荷形式进行存储,数据存储在电容器中。由于电容器会因漏电而出现电荷丢失,所以 DRAM 器件需要定期刷新。
SRAM 是静态的,只要供电它就会保持一个值,SRAM 没有刷新周期。

三、接口与总线

1. 串口

1969 年发布的 RS-232 修改版 RS-232C 是嵌入式系统中应用最广泛的串行接口,它为连接 DTE(数据终端设备)与 DCE(数据通信设备)而制定。
RS-232C 标准接口有 25 条线(4 条数据线、11 条控制线、3 条定时线、7 条备用和未定义线),常用的只有 9 根,它们是 RTS/CTS(请求发送 / 清除发送流控制)、RxD/TxD(数据收发)、DSR/DTR(数据终端就绪 / 数据设置就绪流控制)、DCD(数据载波检测,也称 RLSD,即接收线信号检出)、Ringing-RI(振铃指示)、SG(信号地)信号。

2. I2C

I2C(内置集成电路)总线是由 Philips 公司开发的两线式串行总线,产生于 20 世纪 80 年代,用于连接微控制器及其外围设备。
I2C 总线支持多主控(Multi-Mastering)模式,任何能够进行发送和接收的设备都可以成为主设备。
I2C 总线的两个信号为数据线 SDA 和时钟 SCL。
I2C 设备上的串行数据线 SDA 接口电路是双向的,输出电路用于向总线上发送数据,输入电路用于接收总线上的数据。
串行时钟线 SCL 也是双向的,作为控制总线数据传送的主机要通过 SCL 输出电路发送时钟信号,并检测总线上 SCL 上的电平以决定什么时候发下一个时钟脉冲电平。

3. SPI

SPI(串行外设接口)总线系统是一种同步串行外设接口,它可以使 CPU 与各种外围设备以串行方式进行通信以交换信息。
一般主控 SoC 作为SPI 的“主”,而外设作为 SPI 的“从”。
SPI 接口一般使用 4 条线:串行时钟线SCLK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS。

4. USB

USB(通用串行总线)具有数据传输率高、易扩展、支持即插即用和热插拔的优点,目前已得到广泛应用。
USB 1.1 包含全速和低速两种模式,低速方式的速率为 1.5Mbit/s,支持一些不需要很大数据吞吐量和很高实时性的设备,如鼠标等。
全速模式为 12Mbit/s,可以外接速率更高的外设。在 USB 2.0 中,增加了一种高速方式,数据传输率达到 480Mbit/s,半双工,可以满足更高速外设的需要。
而 USB 3.0(也被认为是 Super Speed USB)的最大传输带宽高达 5.0Gbit/s(即 640MB/s),全双工。
USB 2.0 总线的机械连接非常简单,采用 4 芯的屏蔽线,一对差分线(D+、D-)传送信号,另一对(VBUS、电源地)传送 +5V 的直流电。
USB 3.0 线缆则设计了 8 条内部线路,除VBUS、电源地之外,其余 3 对均为数据传输线路。
其中保留了 D+ 与 D- 这两条兼容 USB 2.0 的线路,新增了 SSRX 与 SSTX 专为 USB 3.0 所设的线路。

5. 以太网接口

以太网接口由 MAC(以太网媒体接入控制器)和 PHY(物理接口收发器)组成。
MAC 和 PHY 之间采用 MII(媒体独立接口)连接,包括 1 个数据接口与 MAC 和 PHY 之间的 1 个管理接口。

6. SD和SDIO

SD(Secure Digital)是一种关于 Flash 存储卡的标准,也就是一般常见的 SD 记忆卡,在设计上与 MMC(Multi-Media Card)保持了兼容。
SDIO(Secure Digital Input and Output Card,安全数字输入输出卡)在 SD 标准的基础上,定义了除存储卡以外的外设接口。
SDIO 接口的引脚定义如下。

  • CLK:时钟引脚,每个时钟周期传输一个命令或数据位;
  • CMD:命令引脚,命令在 CMD 线上串行传输,是双向半双工的(命令从主机到从卡,而命令的响应是从卡发送到主机);
  • DAT[0]~DAT[3]:数据线引脚;在 SPI 模式中,第 8 脚位被当成中断信号。

四、原理图分析

原理图分析的含义是指通过阅读电路板的原理图获得各种存储器、外设所使用的硬件资源、接口和引脚连接关系。
若要整体理解整个电路板的硬件组成,原理图的分析方法是以主CPU为中心向存储器和外设辐射,步骤如下。

  1. 阅读 CPU 部分,获知 CPU 的哪些片选、中断和集成的外设控制器在使用,列出这些元素 a、b、c、…。
  2. 对第 1 步中列出的元素,从原理图中对应的外设和存储器电路中分析出实际的使用情况。

五、芯片数据手册阅读方法

芯片数据手册往往长达数百页,甚至上千页,而且全部是英文,从头到尾不加区分地阅读需要花费非常长的时间,而且不一定能获取对设计设备驱动有帮助的信息。
芯片数据手册的正确阅读方法是快速而准确地定位有用信息,重点阅读这些信息,忽略无关内容。

  1. 数据手册的第 1 章“ PRODUCT OVERVIEW”(产品综述)是必读的,通过阅读这一部分可以获知整个芯片的组成。
  2. 第 2 章“MemoryMap”(内存映射)比较关键,对于定位存储器和外设所对应的基址有直接指导意义,这一部分应该细看。
  3. 第 3 ~ 34 章对应于 CPU 内部集成的外设或总线控制器,当具体编写某接口的驱动时,应该详细阅读,主要是分析数据、控制、地址寄存器(数据手册中一般会以表格列出)的访问控制和具体设备的操作流程(数据手册中会给出步骤,有的还会给出流程图)。
  4. 第 44 章“ELECTRICAL DATA”(电气数据)和第 45 章“ MECHANICAL DATA”(机械数据)无须阅读。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
课程设计-基于C51单片机的自动打铃系统 : 摘 要 本次设计中的LED数码管电子时钟电路采用24小时制记时方式,本次设计采用AT89C51单片机的扩展芯片和6个PNP三极管做驱动,由三块LED数码管构成的显示系统,与传统的基于8/16位普通单片机的LED显示系统相比较,本系统在不显著地增加系统成本的情况下,可支持更多的LED数码管稳定显示。设计采用AT98C51单片机,使用5V电源供电,并且在按键的作用下可以进行调时,调分,复位功能。计时数据的更新在计算机C语言的驱动下每秒自动进行一次,但不需程序干预其输出状态。 关键词:AT89C51; 数码管 ; LED 第一章 设计简介及方案论述 1.1作息时间控制钟系统概述: 本设计是一个具有报时功能的作息时间控制钟。它利用89C51单片机的2Hz时基计时,进行年历计算,并用的蜂鸣器驱动模块将它报出来;在进行时间计算,分每加一时,都与规定的作息时间比较,如果相等则进行相应的控制或动作。由七段显示驱动模块、蜂鸣器驱动模块和按钮控制模块三部分组成,四个按键用于报时及校正时间。现代机关企业,特别是学校要求对时间加以控制,要按时打铃及播放广播,以保证学习与工作的正常运行。本设计实现了这些功能,给学校及其他机关企业带来方便,整体性好,人性化强、可靠性高,实现了对时间控制的智能化。 1.2本设计任务和主要内容: (1)设计任务 用可编程器件为主体,设计并制作一台自动打铃系统。要求完成的作品必须固化软件,测试检查时上电即可工作,不允再用计算机下载。实现能够显示当前的时间,同时能够在规定的时间点控制打铃装置打出预期的铃声。另外增设四个按钮,通过分配以实现对时间的调整,包括对时钟、分钟的增加和减少,秒钟的清零;以及强制打铃和关闭打铃。 (2)主要内容 1、基本计时和显示功能(用12小时制显示)。包括上下午标志,时、分的数字显示,秒信号指示。 2、能设置当前时间(含上、下午,时,分) 3、能实现基本打铃功能,规定: 上午6:00起床铃:打铃5秒、停2秒、再打铃5秒。 下午10:30熄灯铃:打铃5秒、停2秒、再打铃5秒。 铃声可用小喇叭播放,凡是用到铃声功能的均按此处理。 第二章 系统主要硬件电路设计 2.1单片机总体设计思路 (1)设计能正常工作的一个单片机最小硬件系统,外围电路包括设置键盘,LCD或LED的显示屏; (2)进行软件设计,利用单片机系统时钟先设计一个高精度的内部时钟系统,最小精确时间为期1秒; (3)在秒计数器的基础设计一个24小时时钟,并设计若干定时功能; (4)设计打铃执行机构,完成自动打铃功能。 2.2各功能模块程序实现原理分析

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值