1、1C H A P T E R嵌入式系统设计实例嵌入式系统设计实例 -远程监控系统的设计远程监控系统的设计青岛科技大学青岛科技大学 马兴录马兴录2本章提要嵌入式系统的开发过程嵌入式系统的开发过程系统定义阶段系统定义阶段系统集成阶段系统集成阶段总体设计阶段总体设计阶段构建设计阶段构建设计阶段3系统定义设计要求可行性分析需求分析规格说明系统总体设计总体设计方案的确定软硬件功能划分硬件体系架构设计操作系统选择开发环境选择选择软件系统总体设计软件体系结构设计系统详细设计硬件详细设计引导与操作系统移植驱动程序设计软件详细设计应用程序设计与调试系统集成与测试元器件选择线路板设计与制做线路板测试一、嵌入式系统
2、的开发过程4二、系统定义阶段 系统定义阶段需要确定系统开发最终实现的目标确定系统开发最终实现的目标、实现目标的可行性、实现目标应采用的策略、估计完成系统开发所需的资源和成本、制定工程进度安排计划。这一阶段的工作主要包括:系统定义系统定义可行性分析可行性分析需求分析和规格说明需求分析和规格说明 5 1、系统定义示例:离子色谱仪远程监控系统的设计要求(注:设计要求一般由用户提出,形成文档。这是项目的来源。设计要求尽可能详细,尽量不要有歧义。) 有一复杂分析仪器,采用按键、旋钮等进行手工操作。现要求将操作控制方式改为触摸屏,并允许远程控制。总体功能要求如下:(1)本机配备彩色触摸屏;(2)允许本地操
3、作控制;(3)允许远程操作控制;(4)仪器采集的数据可远程传输;原来仪器的控制面板如下:二、系统定义阶段67二、系统定义阶段1. 引言1.1 编写目的1.2 背景1.3 定义1.4 参考资料2. 可行性研究的前提2.1 要求2.2 目标2.3 条件、假定和限制2.4 进行可行性研究的方法2.5 评价方法与尺度3. 对现有系统的分析3.1 处理流程和数据流程3.2 所需的人员3.3 设备3.4 局限性4. 所建议的系统4.1 对所建议系统的说明4.2 处理流程和数据流程4.3 改进之处4.4 影响4.5 技术条件方面的可能性5. 可选择的其他系统方案6. 投资及效益分析6.1 项目经费预算6.2
4、 收益分析7. 社会因素方面的可能性8. 结论2、可行性分析示例:远程监控系统的可行性分析8二、系统定义阶段 3、需求分析示例:远程监控系统 需求分析是针对设计要求进行分析,以确定各项要求的可行性,以及相应的实现方法。通过需求分析,可以确定要实现哪种功能、实现到什么程度、技术指标等。 需求可分为功能部分和非功能部分。非功能性需求包括了性能、价格、物理尺寸和重量、功耗等方面的因素。 建议采用建议采用UMLUML建立模型,进行准确描述。建立模型,进行准确描述。 9二、系统定义阶段 3、需求分析示例:远程监控系统 (1)触摸屏: 采用哪种类型的,电阻、电容触摸屏? 屏的尺寸需要多大? 色彩分辨率等的
5、要求。10二、系统定义阶段 3、需求分析示例:远程温度监控系统 (2)本地操作界面: 可以画草图与用户沟通,如: 11关键要搞清楚界面各控件的功能、作用:(1)显示框:显示的数字范围、精度?刷新周期?(2)档位选择之后,内部如何操作?自动档位是如何实现的?(3)各信号来源的采集精度?输入通道(4)。?12二、系统定义阶段 3、需求分析示例:远程监控系统 (3)远程通讯: 通信方式及距离:以太网络/串口? 远程控制与本地控制如何协调? 有几个远程控制终端? 13二、系统定义阶段 3、需求分析示例:远程监控系统 (4)远程数据传输: 传输什么数据:仪器采集到的谱图数据。具体为电压值:-2500mV
6、至2500mV之间。采集精度要求为20位以上。 数据采集周期:最快为100ms采集一次。 采集方式:在分析过程进行采集,其他过程不采集。 14二、系统定义阶段 3、需求分析示例:远程监控系统 (5)其他要求: 如存储要求:在用户的设计要求中,没有明确提出存储要求。但从使用角度考虑,用户设定档位、电流等信息应该记忆,便于下次使用。 仪器的分析数据是否需要保存? 电源方面的考虑: 运行环境:温度、湿度等 机械尺寸方面: 15二、系统定义阶段 3、需求分析示例:远程监控系统 本阶段完成的标志是:形成需求规格说明书,由用户确认。参见需求规格说明书的文本格式。(一起分析)总结:横向总结:横向-功能分析;
7、纵向功能分析;纵向-性能分析性能分析其它设计实例参考:风机消防设备要求作业:针对离子色谱仪远程监控系统的设计要求,进行详细的需求分析,形成需求规格说明书。也可以针对其他的设计要求。16三、总体设计阶段 总体设计是设计的第一步,其目的是描述系统如何实现由系统定义规定的那些功能。它需要解决嵌入式系统的总体构架,从功能实现上对软硬件进行划分;在此基础上,选定处理器和基本接口器件;根据系统的复杂程度确定是否使用操作系统,以及选择哪种操作系统;此外,还需要选择系统的开发环境、软件系统的总体架构设计等。 要点:化整为零,逐层细化要点:化整为零,逐层细化 17三、总体设计阶段 1、远程监控系统的总体设计思路
8、系统总体结构图18三、总体设计阶段 1、总体设计思路(1)首先要明确系统中的各实体及其关系: 嵌入式系统;电导检测器及模拟电路;泵;远程计算机 嵌入式系统与电导检测器及模拟电路之间的关系分析:信号检测与控制。 待检测的信号有:档位电压、电导率、电流、调零输出及温度; 控制的信号有:档位选择、电流输出、输出调零 由此明确嵌入式系统针对该部分要实现的功能。19三、总体设计阶段 1、总体设计思路(1)首先要明确系统中的各实体及其关系: 嵌入式系统;电导检测器及模拟电路;泵;远程计算机 嵌入式系统与泵之间的关系分析: 通过串行通讯实现泵的检测与控制。 检测的信号有:泵压力; 控制的信号有:泵的启停、工
9、作参数的设定 由此明确嵌入式系统针对该部分要实现的功能。20三、总体设计阶段 1、总体设计思路(1)首先要明确系统中的各实体及其关系: 嵌入式系统;电导检测器及模拟电路;泵;远程计算机 嵌入式系统与远程计算机之间的关系分析: 通过网络通讯实现远程监控。 21三、总体设计阶段 1、总体设计思路(2)明确系统设计的各部分: 嵌入式系统的软硬件; 远程计算机的软件; 以及两者之间的通讯协议。 22三、总体设计阶段 1、总体设计思路(3)确定各部分的设计思路 嵌入式系统 这是系统的主体部分。考虑到该部分功能的复杂性,应该选用嵌入式操作系统以降低软件设计难度。 考虑到需要良好的用户操作界面,可以选择Wi
10、nCE,或Linux+QT. 从经济角度考虑,建议选用Linux+QT. 23三、总体设计阶段 1、总体设计思路(3)确定各部分的设计思路 嵌入式系统的层次结构图: 24三、总体设计阶段 1、总体设计思路(3)确定各部分的设计思路 嵌入式系统的设计路线图 25三、总体设计阶段 2、远程温度监控系统的硬件设计方案 采用ARM进行设计,硬件系统一般采用核心板+扩展板的方式实现。这样,设计比较简单,可靠性也较高。选用SC6410 ARM11核心板,外围只需扩展出如下部分电路即可:(1)A/D输入:至少需要4通道的20位以上的AD转换器。为了使用开发板模拟实现,可以在忽略采集精度的前提下,采用6410
11、自带的10/12位的A/D转换器。(2)数字输出电路:档位选择、模拟通道选择,输出调零都需要控制模拟信号板的相关器件,采用GPIO信号控制即可(3)D/A输出:电流需要使用DA转换器输出实现。(4)串行通讯口:与泵连接。26三、总体设计阶段 2、远程温度监控系统的硬件设计方案(5)液晶及触摸屏接口:(6)网络接口:(7)电源:计算整机的耗电量,设计电源。核心板:5V,500mA液晶:5V,200mA模拟信号电路:200mA(估计值)其他:300mA因此,总体需要5V,1.2A。通常,保证电源工作在满负荷的70%左右较为合理,因此,选用5V,2A的直流电源。27三、总体设计阶段 3、远程温度监控
12、系统的软件系统设计方案 采用Linux嵌入式操作系统+图形化用户界面QT。采用多任务的编程方法。 根据需求分析,在系统中要完成的任务可分为:(1)用户交互界面:接收用户的输入,去改变相应的输出控制信号。将内部检测信号显示出来;(2)电导检测器的检测与控制:根据用户的选择,定期采集数据。(2)泵的监控:定期检测泵压力,如有异常,则报警并产生相应动作;根据用户界面的控制,实现泵的启停等控制。(3)网络通讯:在分析阶段,每100ms采集一个数据并上传到远程计算机;根据远程计算机的命令,实现远程控制。28三、总体设计阶段 总结:本阶段完成系统各部分的划分,明确每个部分的功能与结构;明确各部分之间的接口
13、界限。课堂练习:完成电导检测器的监控部分的软件总体设计,以面向对象的思路进行设计。主要包括: 该部分所涉及的实体有哪些? 各实体之间的联系如何? 各实体的功能有哪些?作业:本阶段需要完成概要设计说明书的编写。29四、详细设计阶段 1、硬件系统的设计(1)设计方法:以厂家(实验箱或开发板)提供的电路为基础,进 行裁减或修改。(2)以核心板为出发点,构建核心板的外围电路: 电源系统 LCD显示电路 网络接口电路 RS232通讯电路 AD转换、DA转换、GPIO等接口电路30四、详细设计阶段 1、硬件系统的设计(3)电源系统的考虑核心板需要3.3VDC,而有些外围电路,如RS232通讯、AD信号检测
14、等需要5VDC,这样,需要外供5VDC,然后用降压模块变出3.3VDC. 31四、详细设计阶段 1、硬件系统的设计(4)其它电路的考虑可与开发板一致。从开发板电路图上将相关部分电路参考引用即可。32四、详细设计阶段 2、软件系统的设计(1)简化设计方案嵌入式应用程序:嵌入式应用程序:无界面的网络服务程序,响应远程计算机的命令,提供数据采集及控制动作计算机应用程序:计算机应用程序:提供用户界面,向嵌入式系统发送网络命令,实现数据采集及控制动作TCP通讯33四、详细设计阶段 2、软件系统的设计(2)嵌入式应用程序的设计主要完成网络通讯协议的解析及相应动作的实现:数据采集:AD通道0-3档位选择:用
15、四个LED代表。DA输出等:输出电流34通讯协议n服务端与客户端之间的通信协议如下:n数据帧格式为:n0 x02 命令 数据项 D3 D2 D1 D0 0 x03n共8个字符,除首字符02,结束字符03外,中间5个均为ASCII码字符n命令字符定义如下:nR:读取命令;W:写入命令;B:读取返回;P:写入返回n数据项:n0:AD通道0的采样值n1:AD通道1的采样值n2:AD通道2的采样值n3:AD通道3的采样值n4:4个LED指示灯nD3-D0:4位十进制数据n举例1:如客户端要读取AD通道0的采样值,则发送:n02 R00000 03n服务器返回:n02 B00800 03 /表示返回的数
16、值为800mVn举例2:客户端控制4个指示灯,2个亮,2个灭n02 W41010 03 /1表示灯亮,0表示灯灭n服务器返回:n02 P41010 0335编程实现n以 TCP程序Server.c为例进行修改:n增加协议数据包的接收及解析功能n(1)首先完成协议包的接收:n要点:首字符0 x02是标志性字符,协议包长度固定。n(2)协议包的解析:n要点:将每个字段分解开,分别进行判断处理36四、详细设计阶段 2、软件系统的设计(3)上位机应用程序的设计实现操作界面完成网络通讯协议的发送与数据接收可以基于QT,也可以使用Java或Studio等开发环境。37四、详细设计阶段 2、软件系统的设计(3)上位机应用程序的设计演示实例: 用QTCreator 开发用户界面。基于QTcpSocket38任务安排n设计任务(15周要完成的任务) (1)提交需求分析规格说明书及概要设计说明书(每小组提交1份即可) (2)完成嵌入式软件的初步设计。 (3)上位机程序可采用任何开发工具实现。n16周调试、验收。可延长至第17周: