您的位置 首页 嵌入式

关于嵌入式系统开发必备的基础知识

关于嵌入式系统开发必备的基础知识-做嵌入式系统开发,经常要接触硬件。做嵌入式开发对数字电路和模拟电路要有一定的了解。这样才能深入的研究下去。

做嵌入式体系开发,常常要触摸硬件。做嵌入式开发对数字电路模仿电路要有必定的了解。这样才干深化的研讨下去。下面咱们简略的介绍嵌入式开发中的一些硬件相关的概念。

在嵌入式体系中必定会有一块处理器芯片,此外,还有其它的芯片作为外部设备(后边简称外设),这些芯片与处理器协作完成产品的功用。杂乱的产品往往是由许多的芯片组成的。那么不可避免的是咱们需求将一切的外设与处理器进行相连,最为简略的是将一切的外设都选用独立(留意是独立)的信号线衔接至处理器,这样的优点是简单了解,但问题是:不可行。

因为处理器芯片需求引出太多的线了,从芯片的出产和产品的出产视点来看都不实践。加之,处理器(在此咱们假定处理器是单核的,而不是多核的)处理事务在微观上是串行的,也便是说在某一时间假如要对外设进行读写操作,那只或许是对许多外设中的一个进行,即多个外设不或许在微观上被处理器一起拜访。

需求留意的是,这儿提出了微观这一概念,这是为了差异于微观。从微观上来讲,一个处理器中能够有多个使命一起运转,但这些使命在微观上却是一个一个运转的(后边会用串行来描绘这儿所说的“一个一个”),多使命的串行运转完成是由操作体系扮演着重要的人物来完成的。

关于嵌入式体系开发必备的基础知识

回到咱们的论题,即然将每个外设选用独立的信号线连到处理器不可行,且处理器在单一时间内只会对一个外设进行拜访,那咱们能不能选用同享的信号线将一切的芯片连在一起呢?这便是总线概念的由来。浅显的说,假如咱们周围有十个家庭,为了让这十个家庭每两个之间都能来往,咱们并不需求为每两个家庭修一条独自(留意是独自)的路(假如这样,要修45条路),而是能够修一条大道,然后,每个家都与大道相连。

关于总线,咱们往往说总线是处理器的,而其它的外设是挂在总线上的。那有一个问题,咱们每一时间只能拜访挂在总线上的一个外设,那怎么区别这些外设呢?和咱们的路相同,咱们需求用地址来区别每一个家庭,在总线上,也是选用地址来进行区别的。

这样,总线就依据其功用分为两类了。一类是地址总线,这一总线上的数据只会是从处理器向外设“流”,是单向的。另一类则是数据总线,用来将数据从处理器传送到外设(从处理器的视点来说是写操作)或许是将数据从外设传送到处理器(从处理器的视点来说是读操作),明显,数据总线是双向的。也便是说,在咱们的嵌入式体系中一起存在地址总线和数据总线将一切需求与处理器进行通讯的芯片连在一起的。

总线是有宽度的,正如咱们的路分为“三车道”或是“四车道”,咱们说32位处理器,是指其数据总线宽度是32位,也便是“有32辆车能一起跑”,明显,宽度越是宽咱们的处理器速度就越是快,因为咱们从外设芯片存取数据的速度会更快,这便是为什么咱们的计算机向64位开展的原因。相同的,地址总线也是有宽度的,关于32位处理器其最大宽度也便是32位。

总线的概念有了,那接下来的一个问题是,即使是每一个外设都有一个地址,那这一地址记在哪里呢?是放在外设芯片上吗?假如这样的话,那就有一个问题,每一类外设的地址有必要是不能堆叠的,而当一个产品中需求两块相同的芯片的话,两块芯片的地址就无法区别了,看来这样操作存在问题。还有,假如这样的话每一个外设也得与(比方,32根)数据总线彻底相连,并监听数据线以了解处理器是不是在“叫”自己,这样很是杂乱。

此外,地址也有或许因为外设品种的增多而用光。总的来说地址不能存放在外设芯片,那怎么让外设知道,此刻它是被处理器招换然后需求进行读写拜访的呢?答案便是芯片的片选(CS, chip select)信号,或许又号使能(ENable)信号。

片选信号关于外设芯片来讲,便是一个(也是一根)告知信号,告知芯片“嘿,请开门,我要放些东西进来,或是拿些东西走”,这儿的东西只能是数据,不或许是玉米棒什么的。那有个问题,这个信号源从哪里来呢?明显,只能从处理器来。那是不是也是像总线那样,每一个芯片都共用一根线连在一起呢?

关于嵌入式体系开发必备的基础知识

假如这样,或许处理器“一叫开门”一切的芯片都将“门”翻开了。假如是处理器写数据,那或许一切的芯片都被写入相同的数据。而取数据时,每个外设芯片都向外“扔”数据,这必定会形成数据总线抵触,因为有的芯片向总线上“扔”1,有的则“扔”0,这种情况下处理器必定会“发疯”的,因为它不知道应当得到1仍是0。

即然这样,那明显不能将一切的片选信号连在一起了,只能是各芯片的片选信号独立。前面提到了地址总线,咱们是选用一根地址线连一个外设芯片呢?仍是选用其它的办法。假如选用一根地址线连一个外设芯片,那或许最多只能挂接32个芯片了,这明显不可。

其实,在实际中,是选用32位的数字来表明一个外设芯片的地址的,比方1能够表明芯片A,而6534能够表明别的一个芯片B,等等。由此看来,理论上咱们能够表明2的32次方(4294967296)个设备,之所以说理论上,是因为有的设备要占用许多的地址。即然这样,那还有一个问题,假如将32位的地址总线转换成芯片的一根片选信号呢?这需求引进译码(器)的概念。

译码器将一个数据转换成一根信号线上的信号,比方3/8译码器,能够将一个位宽是3位的数据转换成8根(2的3次方)彻底独立的信号线,当向数据侧写入二进制的011时,对应的是8根线的第3根,当输入二进制的111时,对应的是8根线中的最终一根。有了译码器,处理器的地址线就简化了,只需32根地址线加上外面的译码器,就能够拜访许多的外设芯片了。外部设备的挑选问题,咱们现已处理了,现在还得回头看一看数据总线。

在嵌入式体系中,一切芯片的数据总线能够了解成是直接相连的。之所以用了“能够了解”一词,是因为为了进步总线的负载才能,其间会参加总线驱动器。为了了解,咱们看一看咱们日子中的自来水,比方,在北京理论上或许一切的水管是连在一起的,但中心或许为了进步水压,存在许多小的水站用来添加供水压力,而不或许全北京一切的自来水自接来自一个水厂。

即然一切的数据总线是连在一起的,那就或许会有问题。当向外部设备写数据时,处理器先向地址总线运送方针外设的地址,地址译码器将其转换成一根信号的片选信号送到了方针外设,方针外设收到这一信号后,将“门”翻开。接下来处理器即将传送到外设的数据往数据总线上一放,因为只要方针外设芯片翻开了“门”,所以数据只会进入到方针外设,而其它的外设什么也不会收到。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/98633.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部