单片机第8章嵌入式系统开发平台

上传人:E**** 文档编号:92633763 上传时间:2019-07-11 格式:PPT 页数:42 大小:1.22MB
返回 下载 相关 举报
单片机第8章嵌入式系统开发平台_第1页
第1页 / 共42页
单片机第8章嵌入式系统开发平台_第2页
第2页 / 共42页
单片机第8章嵌入式系统开发平台_第3页
第3页 / 共42页
单片机第8章嵌入式系统开发平台_第4页
第4页 / 共42页
单片机第8章嵌入式系统开发平台_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《单片机第8章嵌入式系统开发平台》由会员分享,可在线阅读,更多相关《单片机第8章嵌入式系统开发平台(42页珍藏版)》请在金锄头文库上搜索。

1、第8章 嵌入式系统开发平台,西安交通大学生物医学工程系,西安交通大学单片机与嵌入式系统,2019/7/11,2,第8章 嵌入式系统开发平台,1. 如何建立嵌入式系统开发平台 2. 数据队列 3. 串口驱动 4. MODEM接口模块 5. I2C总线模块 6. SPI总线模块,2019/7/11,3,8.1 如何建立嵌入式系统开发平台,平台的概念 平台是一个意义很广泛的词,要准确的定义平台不是件容易的事。在嵌入式系统中的开发平台具有如下特点: 1、层次性 2、服务性 3、规范性 4、通用性 5、技术密度,2019/7/11,4,8.1 如何建立嵌入式系统开发平台,嵌入式系统中的开发平台特点: 1

2、、层次性 层次性首先表现在平台本身具有层次,高层的平台是以低层平台为基础搭建起来的。还表现在每个层次的平台的内部还有层次性。越高层次平台越容易使用,对使用者的要求也就越低。 2、服务性 平台是为应用服务的,没有应用的平台是无意义的,没有存在的必要。对于元器件来说,线路板就是它的应用。而API是硬件平台的应用,应用程序又是API的应用。,2019/7/11,5,8.1 如何建立嵌入式系统开发平台,嵌入式系统中的开发平台特点: 3、规范性 当一个平台建立起来后,其对应用的接口就具有一定的规范。 一个软件模块一旦开发完毕,其接口函数及使用方法就确定了,应用程序就需要按照规范使用。 4、通用性 平台从

3、来不是给一个应用使用的。如果一个平台只能给一个应用使用,作为平台来说,其设计是失败的(尽管其作为最终应用可能是成功的)。这是平台的服务性决定的。 5、技术密度 平台特别是商业平台通常由相关领域的专家建立。这是因为需要适应不同的应用的要求,所以其需要的技术含量是很高的。,2019/7/11,6,应用程序,应用程序 接口,电路板,元器件,层次性 规范性 通用性 技术密度,本章重点介绍该层,平台的例子,2019/7/11,7,8.1 如何建立嵌入式系统开发平台,使用平台开发的优势 应用程序接口这个嵌入式软件开发平台的提出和应用是因为其能够解决当前及今后的嵌入式开发过程中出现的一些矛盾。使用嵌入式软件

4、开发平台(API)开发的优点: 缩短开发时间 降低对开发人员的要求 降低开发成本 增加稳定性和可靠性 降低软件对硬件变化的敏感性,2019/7/11,8,8.1 如何建立嵌入式系统开发平台,不适合使用平台开发的场合 极大批量的产品:这种产品往往要求硬件成本和生产成本最低化。而使用平台开发不可避免带来资源占用的增加,反映到硬件上就是成本的增加。 没有合适的平台但产品需要尽快上市时:开发平台是需要时间的,甚至比当前的项目的时间更长。 需要极度榨取硬件性能的场合:只有科学研究和一些一件一件制造的高价值产品(如巨型机)需要这样做。,2019/7/11,9,8.1 如何建立嵌入式系统开发平台,建立开发平

5、台的方法 选择操作系统(OS):基础软件平台。建立软件开发平台(自己的API)首先需要选择一个合适的操作系统嵌入式操作系统。 制定API规范及应用程序:有了操作系统,就可以制订API规范和程序编写规范了。这些规范一部分已经被操作系统规定好了,另一部分需要自己制订。 获取成熟的软件模块并修改适合制定的规范:开发人员可以通过各种途径获取成熟的软件模块,并修改为符合自己规范需要的模块 编写自己的软件模块:通过外部途径不一定能够获取所有必须的软件模块,此时就需要自己编写软件模块了。,2019/7/11,10,8.1 如何建立嵌入式系统开发平台,编写自己的软件模块 因为开发平台基于操作系统,所以很可能多

6、个任务和/或同时访问同一个API函数。这就需要API函数必须是可重入的。 1、使用任务 2、禁止然后允许中断 3、使用信号量 4、使用数据队列 5、禁止然后允许任务调度 6、使用一个任务作为模块服务器 7、复合方法,2019/7/11,11,8.1 如何建立嵌入式系统开发平台,1、使用任务 有一些设备需要CPU周期为其服务,典型的是扫描显示和扫描键盘。可以给它们分配相应的任务,与用户任务一起调度。这样,就可以使用任何任务间通信的方法实现。,2019/7/11,12,8.1 如何建立嵌入式系统开发平台,2、禁止然后允许中断 有一些设备需要的访问时间很短,如全局变量。它们可以通过禁止中断访问设备允

7、许中断的方式编写软件模块。,2019/7/11,13,信号量,访问独享资源之前申请信号量,其它任务申请信号量受阻,不能访问独享资源,信号量申请成功后,可以访问独享资源,8.1 如何建立嵌入式系统开发平台,3、使用信号量 一些设备需要的访问时间比较长,使用方法2可能造成关中断时间过长。此时可以使用信号量来编写软件模块。具体过程为申请信号量访问设备发送信号量。,2019/7/11,14,8.1 如何建立嵌入式系统开发平台,4、使用数据队列 有一些设备具有自己的中断,典型的是串口输出。可以利用消息队列将用户任务需要的服务通过消息队列排队、缓冲起来,利用中断功能依次服务。,2019/7/11,15,8

8、.1 如何建立嵌入式系统开发平台,5、禁止然后允许任务调度 当中断服务程序不可能访问这个资源时,可以使用本方法避免实现函数重入。但是不推荐用户使用此方法。,2019/7/11,16,8.1 如何建立嵌入式系统开发平台,6、使用一个任务作为模块服务器 当一个软件模块十分复杂,使用上述方法难以保证API函数可重入性时,或软件模块需要在单任务环境和多任务环境都能够使用时,可以依照单任务的方式编写,然后编写一个任务作为服务器,由这个服务器直接操作这个软件模块,而其它的任务通过消息队列等方式与之通讯,把需要的操作提交给服务器,而服务器通过消息邮箱等方式返回操作结果。,2019/7/11,17,8.1 如

9、何建立嵌入式系统开发平台,7、复合方法 有一些驱动程序比较复杂(例如通讯协议),可以结合两种或两种以上的方法实现。,2019/7/11,18,软件模块应用于不同的硬件平台时,只需要修改相应的硬件驱动,8.1 如何建立嵌入式系统开发平台,编写自己的软件模块 编写软件模块有一个要注意的地方是:必须把与硬件相关的部分和与硬件无关的部分分开。这可以通过把与硬件相关的部分放在驱动程序中实现。这样,硬件变化时只需要重新编写驱动程序即可。驱动程序也可以分层实现。也可以通过配置实现,不过这有时不太容易实现。当然可以合并使用。,2019/7/11,19,第8章 嵌入式系统开发平台,1. 如何建立嵌入式系统开发平

10、台 2. 数据队列 3. 串口驱动 4. MODEM接口模块 5. I2C总线模块 6. SPI总线模块,2019/7/11,20,8.2 数据队列,简介 数据队列一般用于数据缓存,可以用来平衡速率不同的两个部件,使快速部件无需等待慢速部件。,任务A产生信息快而短促,任务B处理信息相对较慢,2019/7/11,21,8.2 数据队列,简介 数据队列一般是先入先出(FIFO)的,但本数据队列可以配置为后入先出。本数据队列是可配置可裁减的模块,并且不依赖于操作系统,可以在前后台系统中使用。数据队列使用的空间由用户分配且由这个空间的地址唯一识别一个数据队列。,2019/7/11,22,8.2 数据队

11、列,API函数,2019/7/11,23,8.2 数据队列,API函数,4,5,6,7,3,0,1,2,数据队列,2019/7/11,24,第8章 嵌入式系统开发平台,1. 如何建立嵌入式系统开发平台 2. 数据队列 3. 串口驱动 4. MODEM接口模块 5. I2C总线模块 6. SPI总线模块,2019/7/11,25,8.3 串口驱动,简介 在实际应用中,嵌入式系统往往不是作为一个独立的控制单元而存在,它还要和其它控制单元进行通信。这些控制单元可以是另一个嵌入式系统,也可以是PC机。如果双方均遵循同样的通讯协议,就可以互相通讯了。,2019/7/11,26,8.3 串口驱动,API函

12、数,串口驱动软件模块包括的API函数如下所示:,2019/7/11,27,UART0Init,UART0Init,8.3 串口驱动,API函数,串口驱动软件模块包括的API函数如下所示:,主机A,主机B,2019/7/11,28,第8章 嵌入式系统开发平台,1. 如何建立嵌入式系统开发平台 2. 数据队列 3. 串口驱动 4. MODEM接口模块 5. I2C总线模块 6. SPI总线模块,2019/7/11,29,8.4 MODEM接口,简介 在实际应用中,嵌入式系统和其它控制单元的通信可能不局限于一个小的地理范围,如跨城市通讯甚至跨省通讯。此时,如果需要布置专门的通讯线路则成本太高,利用现

13、成的通讯网络成为唯一的选择。而电话网络是目前分布最广的廉价通讯网络。不过,要利用电话网络需要一种接口设备,这就是MODEM。,2019/7/11,30,8.4 MODEM接口模块,API函数,MODEM接口软件模块包括的API函数如下所示:,2019/7/11,31,8.4 MODEM接口模块,API函数,所有API函数的返回值为当前MODEM的状态,如下所示:,2019/7/11,32,ModemInit GetModemState ModemDiaUP ModemDiaDown,ModemInit GetModemState ModemDiaUP ModemDiaDown,8.4 MODE

14、M接口模块,API函数,2019/7/11,33,第8章 嵌入式系统开发平台,1. 如何建立嵌入式系统开发平台 2. 数据队列 3. 串口驱动 4. MODEM接口模块 5. I2C总线模块 6. SPI总线模块,2019/7/11,34,8.5 I2C总线模块,简介 I2C总线由Philips公司推出,是近年来在微电子通信控制领域广泛采用的一种新型总线标准。它是同步通信的一种特殊形式,具有接口线少、控制方式简化、器件封装形式小、通信速率较高等优点。在主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。,2019/7/11,35,8.5 I2C总线模块,简介 I2

15、C 总线通过2根线串行数据线(SDA)和串行时钟线(SCL)连接到总线上的任何一个器件,每个器件都应有一个唯一的地址,而且都可以作为一个发送器或接收器。此外,器件在执行数据传输时也可以被看作是主机或从机。,2019/7/11,36,8.5 I2C总线模块,API函数,I2C接口软件模块包括的API函数如下所示:,2019/7/11,37,8.5 I2C总线模块,API函数,2019/7/11,38,第8章 嵌入式系统开发平台,1. 如何建立嵌入式系统开发平台 2. 数据队列 3. 串口驱动 4. MODEM接口模块 5. I2C总线模块 6. SPI总线模块,2019/7/11,39,8.6

16、SPI总线模块,简介 串行外围设备接口SPI总线技术是Motorola公司推出的一种同步串行接口。SPI总线是一种三线同步总线,因其硬件功能很强,所以,与SPI有关的软件就相当简单,使CPU有更多的时间处理其他事务。 SPI是一个全双工的串行接口。它设计成可以处理在一个给定总线上多个互连的主机和从机。在一定数据传输过程中,接口上只能有一个主机和一个从机能够通信。在一次数据传输中,主机总是向从机发送一个字节数据,而从机也总是向主机发送一个字节数据。,2019/7/11,40,8.6 SPI总线模块,API函数,SPI接口软件模块包括的API函数如下所示:,2019/7/11,41,8.6 SPI总线模块,API函数,2019/7/11,42,谢谢!,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号