驱动开发必备硬件知识「建议收藏」

驱动开发必备硬件知识「建议收藏」综述:在嵌入式领域,可分为硬件开发和软件开发。对于软件开发又可分为底层开发(模块驱动编写,uboot,内核),上层开发(应用,QT)。作为一名软件驱动开发的工程师,我们不需要去设计硬件的原理图,PCB。我们只需看懂硬件开发人员提供的硬件模块时序就行了,但是我们应该也需了解如下硬件知识。      一)处理器     1,可分为通用处理器(单片机,ARM),数字处理器(DSP),其他专用处理器…

大家好,又见面了,我是你们的朋友全栈君。

综述:在嵌入式领域,可分为硬件开发和软件开发。对于软件开发又可分为底层开发(模块驱动编写,uboot,内核),上层开发(应用,QT)。 作为一名软件驱动开发的工程师,我们不需要去设计硬件的原理图,PCB。我们只需看懂硬件开发人员提供的硬件模块时序就行了,但是我们应该也需了解如下硬件知识。    
    一)处理器     
1,可分为通用处理器(单片机,ARM),数字处理器(DSP),其他专用处理器(FPGA)    
在通用处理器领域中,采用的内核有
51,AVR,PIC,ARM。在当今通用处理器芯片大多数采用ARM架构并且多采用SOC的芯片设计方法,集成了各种功能模块(图形处理器,视频解码器,浮点协处理器,GPS,WIFI等),每一种功能都是由硬件描述语言设计程序,然后在Soc内由电路连接实现。    
主流的ARM移动处理芯片供应商有:高通,三星,英伟达,美满,联发科,海思(哪个国家的?尴尬了)。    
中央处理器的体系结构:冯.诺依曼结构(程序指令存储器和数据存储器合并在一起的存储结构),哈佛结构(
程序指令存储器和数据存储器分开的存储结构)。    
指令集:RISC(精简指令集计算机)和CISC(复杂指令集计算机)。CISC强调增强指令的能力,减少目标代码数量,但指令复杂,指令周期长。RISC强调尽量减少指令集,指令单周期执行,但是目标代码会更大。ARM,MIPS等内核CPU都采用了RISC指令集。    
2,数字信号处理器:针对通信,图像,语音,视频处理等领域的算法设计。它包含的硬件乘法器,DSP的乘法指令一般在单周期内完成,且优化了卷积,数字滤波,FFT,相关矩阵运算等算法中的大量重复乘法。    
德州仪器(TI),美国模拟器件公司(ADI)是全球DSP的两大主厂商。    
3,其他专用处理器:为某种应用的特定设计。采用ASIC,CPLD/FPGA等实现。    在实际项目的硬件方案中,往往会根据应用的需求方案选择通用处理器,数字处理器,特定领域处理器,CPLD/FPGA或ASIC之一的解决方案,在复杂系统中,这些芯片可同时存在,协同合作,各自发挥自己的长处。(ARM+DSP+FPGA)。    
二 存储器     
存储器主要可分为只读存储器(ROM),闪存(Flash),随机存取存储器(RAM)。    
1,ROM在可细分为:不可编程ROM ,可编程ROM,电可擦除可编程ROM(E2PROM),它可完全用软件来擦写。    
2,FLASH可分为NOR(或非),NAND(与非)两种,Intel于1988年首先开发出Nor flash 技术,紧接着1989年,东芝发表了NAND flash结构,彻底改变了原先的EPROM,EEPROM垄断的地位。    
Nor Flash:程序可直接在nor中执行,支持位擦写,支持SPI接口,
存储量小。    
Nand Flash:储存量大,页擦除,占用的I/O多。    
3,RAM可分为静态RAM和动态RAM。动态RAM储存在电容中,擦写速度快,由于电容器有漏电现象,因此需要定期刷新。静态RAM不需要定期刷新电路,储存速度慢。(好坏,快慢都是相比较而言的)    
4,其他    嵌入式系统中往往还有些特定类型的RAM    
双端口RAM:具有两套完全独立的地址,数据总线,用于两个处理器之间的数据交互,具有同时读写的的功能。    
内容寻址RAM(CAM):以内容进行寻址的存储器,是一种特殊的存储阵列RAM,它的主要工作机制就是同时将一个输入的数据与存储在CAM中的所有数据自动进行比较,判断该输入数据项与CAM中存储单元的数据项是否相匹配,并输出该数据项对应的匹配信息。    
FIFO:先进先出队列:特点是先进先出,进出有序,FIFO多用于数据缓冲。    
三 接口与总线    
1,串口:RS-232是一种单机发送,多机接收的单向,平衡传输规范,后来发展的RS-422改进了RS232通信距离短,通信速度慢的特点,在RS-485中,又增加了多点,双向通信能力,即允许多个发送器连接在一条总线上。串口电路组成部分:CPU—UART–RS-232芯片—连接器(接口芯片)。    
2,I2C    
I2C总线是由Philips公司开发的两线式串行总线,产生于20世纪80年代,用于连接微控制器及外围设备。I2C总线支持多主控,但需要注意的是在任意时刻只能有一个主控。    
相应时序:当SCL稳定在高电平时,SDA由高向低的变化将产生一个开始位,而且由低到高变化,则产生一个停止位。(都有注主设备产生)    
在选择设别时:主设备需要首先发送一个字节的地址信息,前7位代表地址信息,最后一位代表读写信息。    
数据通信:在第9个上升沿来到之前,从设备应该发出一个ACK位。结束时,SCL稳定保持在高电平期间,SDA从低向高,产生停止信号。  
3 SPI  
SPI总线系统是一种同步串行外设接口,它可以使CPU与各种外围设别以串行的方式进行通信。SPI接口一般使用4条线,串行时钟线,主机输入/从机输出数据线(MOSI),主机输出/丛机输入线(MOSI),和低电平有效的数据选择线(SS)。     
4 USB       
USB:具有数据传输高,易扩展,支持热插拔等特点。在USB1.1中传输速度有12Mbit/s,在USB2.0中,传输速率达到480Mbit/s。在USB3.0中,传输速率甚至高达5.0Gbit/s。在USB2.0总线的机械连接非常简单,采用4芯的屏蔽线,一对差分线(D+,D-)传输信号,另一对(VBUS,电源地)传送+5v的直流电。    
5 以太网接口    
以太网接口由MAC(以太网媒体接入控制器)和PHY(物理接口收发器)组成。以太网MAC由IEEE802.3以太网标准定义,实现数据链路层。常用的MAC支持10Mbit/s和100Mbit/s两种速率。吉比特网是快速以太网的下一代,速度将高达1000Mbit/s.    
6 PCI和PCI-E    
PCI是一种局部总线,作为一种通用的总线接口标准,它目前在计算机系统中得到了非常广泛的应用。    
7 SD和SDIO    
SD是一种关于FLASH的储存卡的标准,也就是一般常见的SD记忆卡,在设计上与MMC保持兼容。    
SDIO在SD标准的基础上,定义了储存卡以外的外设接口。    
四 CPLD和FPGA    
CPLD由完全可编程的与或门阵列以及宏单元构成。 与CPLD不同,FPGA(现场可编程门阵列)基于LUT(查找表)工艺。CPLD和FPGA的主要厂商有Altera,Xilinx和Lattice等,它们专门的开发流程,在设计阶段使用HDL编程。它们可实现许多复杂功能,如实现USART,I2C等I/O控制芯片,通信算法,音视频解码算法等。甚至还可以直接集成ARM等CPU内核和外围电路。对于驱动工程师而言,我们就直接把它看成由很多逻辑门(与 或 非)组成的可完成一系列功能的芯片。如果完成的功能是CPU,我们就直接把它看成是CPU。驱动工程师眼里的硬件要比IC设计师要宏观。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/163107.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 缺陷报告模板_软件缺陷生命周期图

    缺陷报告模板_软件缺陷生命周期图缺陷ID:XXX严重级别:优先级别:类型:缺陷标题:手机号长度不符合时系统提示有误缺陷描述:在CRM系统线索模块下,当创建一条新线索,在手机号输入框输入一个长度为9位的手机号时,系统提示“手机号正确”与需求要求的提示不符。测试环境:IE11.0缺陷的重现步骤:01.打开CRM系统主界面02.在CRM主界面点击”创建线索”链接03.在手机号输入框输入“123456789”手机号…

  • 算法导论在线阅读_英雄联盟韧性计算

    算法导论在线阅读_英雄联盟韧性计算都整理好了,看谁学得快!

  • 数据库与spring事务隔离级别不一致_spring事务传播行为

    数据库与spring事务隔离级别不一致_spring事务传播行为脏读:一个事务读取到另一个事务未提交的数据,出现脏读的本质是是因为操作(修改)完数据就立马释放掉锁,导致其他事务可以读取数据,而读取的数据是无用的或者错误的。不可重复读:一个事务读取到另外一个事务已经提交的数据,即一个事务可以看到其他事务所做的修改。幻读(虚读):一个事务内读取到了别的事务插入的数据,导致前后读取不一致。查看当前会话隔离级别:select@@tx_isolation;查看…

    2022年10月21日
  • MyBatis-Plus 如何实现连表查询[通俗易懂]

    MyBatis-Plus 如何实现连表查询[通俗易懂]MyBatis-Plus如何实现连表查询安装使用简单的3表查询分页查询还可以这么操作,但不建议骚操作简单的3表查询分页查询项目地址:giteegithub安装在项目中添加依赖,依赖已经包含了mybatis-plus-boot-starter<3.4.2>依赖后无需再次引入mybatis-plus<dependency><groupId>com.github.yulichang</groupId><artifactI

  • javaME_javatype

    javaME_javatype一、首先,我们要了解浏览器是如何处理内容的。在浏览器中显示的内容有HTML、有XML、有GIF、还有Flash……那么,浏览器是如何区分它们,决定什么内容用什么形式来显示呢?答案是MIMEType,也就是该资源的媒体类型。媒体类型通常是通过HTTP协议,由Web服务器告知浏览器的,更准确地说,是通过Content-Type来表示的,例如:Content-Type:tex…

    2022年10月24日
  • 树莓派3B+使用GPIO实现串口通信[通俗易懂]

    树莓派3B+使用GPIO实现串口通信[通俗易懂]https://www.circuits.dk/setup-raspberry-pi-3-gpio-uart/

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号