徐 蓉
(四川师范大学, 成都 610068)
嵌入式系统中面向EOC的开发技术
徐 蓉
(四川师范大学, 成都 610068)
简述嵌入式对象(EOC)的概念,将面向对象的方法应用于嵌入式系统开发中。这些软硬件实体代表了面向对象开发技术中的对象,可作为单个的电子模块集成到嵌入式系统中。EOC的目标是使嵌入式系统开发更快捷方便,同时保证最终产品的商业可行性。
嵌入式对象;面向对象设计; 嵌入式系统
设计嵌入式系统是一个需要大量专业技巧、耗时且昂贵的过程。开发过程需要先创建需求说明,接着对软硬件进行分区设计。这个分区设计过程包括了对MCU(Microcontroller Unit,微控制器单元)、FPGA(Field Programmable Gate Array,现场可编程门阵列)或其他处理器等主要组件的选择。分区和选择组件完成以后,需要创建产品的硬件(PCB)和软件并且测试它们(先分开测试然后再整合测试)。
EOC(Embedded-Object Concept,嵌入式对象)是为了让嵌入式系统的设计过程更加简单快捷、时间上可预测而出现的概念。这个概念使用了面向对象的方法和称为EOC[2]的物理电子模块来解决设计中的问题。EOC是包含了硬件和特定功能软件的微型PCB,因此它是完全的功能实体。这些对象可看作乐高积木彼此互相连接,从而创建一个完整的嵌入式系统。每个对象都有一个通用的、定义明确的硬件和软件接口。对于更复杂的设计,开发人员可以应用面向对象的开发原则。这样,开发人员可以将最终设备转化为大量生产的PCB。
由于使用面向对象的方法,EOC相比传统方法而言有不少的优势。从技术的角度看,EOC让原型设计更快,修改更容易,并且允许设备的增量开发,这在传统开发方法中是不可能的。面向对象方法同时也让设计可以重用,让设备具有可扩展性和可管理的结构。此外,模块化的结构意味着对象配置可以用UML语言描述,因此常用的UML工具也可用于设计。
这些技术同时也带来实用性的好处:原型设计更容易,通过模板设计新功能对象更容易,设计和开发时间更短。而在产品和市场方面的好处,则是从原型设计到最终产品的转化更简单,支持大规模生产和产品的模块化测试,可预测的成本以及简单的升级和扩展。
EOC的开发概念对于需要定制、修改、迭代的应用,以及非大规模生产的消费设备是最适合的,同时它也适合机器人、工业自动化、研究和教育等领域中复杂应用。在使用EOC的案例和传统方法之间比较成本和时间,我们发现用EOC建立的设备在成本方面要贵10%,但却大大地节省了开发时间。
EOC的基本概念就是像乐高积木组装新的玩具一样来建立新的设备。开发者使用一组已经建立好的模块,将它们用不同的方法连接起来,以创建新的不同的设备。在EOC中,模块是称为对象模块的微型PCB,通过通用总线互相连接。每个PCB都有不同的功能(例如伺服控制或传感器输入)。每个对象的属性、事件和方法都可以通过总线来访问。开发者可以将任何对象和另一个对象连接。
开发者将具有特定功能的PCB连接起来,为新系统建立一个新的嵌入式系统模型,然后开发高层控制软件,并赋予系统智能性。软件既可以添加到PCB上,也可添加到外部设备中。开发者能够测试设备,并在必要时使用测试结果来修改设备配置。最后,当设计者确认模型完成后,就可以转化为大量生产的单板设备,其中包括在PCB设计中使用的所有模块。
图1显示了如何在一组称为原子对象的模块上实现EOC。
图1 嵌入式对象:包含了硬件和特定软件功能的微型PCB
开发者使用EOC来创建结构简单的设备,仅仅需要连接几个对象就可以。以一个三轮机器人运动控制器为例,该设备包含了两个马达控制器、一个电源板、一个红外传感器输入、一个连接计算机的用于接收驱动指令的USB接口。当这些对象连接好以后,设备的硬件就绪。当主要控制指令被写入这些对象后,整个设备就绪。
这个概念还可以扩展,基于总线的结构支持面向对象的复杂性增长。我们可以把机器人运动控制器看作一个新的、包含了多个基本对象的更大的对象。为了创建一个更复杂的设备,机器人运动控制器这种大型对象还可以和其他对象连接。如果类对象具有两个或更多的总线接口就可以完成这种连接。例如,摄像对象、音频对象、网络对象及电源对象可以组装成一个网络摄像设备。我们可以将机器人运动控制器与网络摄像设备连接起来,如图2中的UML图。由于不再需要USB,类对象替代了机器人运动控制器中的USB对象。类连接器将类对象的第二条总线连接到网络摄像设备,并用作整个对象的接口。进一步,我们还可以将电源对象从网络摄像设备移除,因为机器人运动控制器中的电源对象可以作此用途。最后的结果就是一个机器人设备包含了三个基本对象和一个更大的对象。
图2 机器人设备的UML类图
远程机器人是通过可运动机器人进行远程作业的一项应用。整个系统包含一个两轮机器人和计算机配对装置。遥控机器人包括了视频和声频交换能力,以及两轮驾驶的控制和平衡能力。通过计算机配对装置,即普通PC上安装有声频音频功能、因特网连接和机器人控制软件,经由WLAN连接可以远程控制机器人。换而言之,这个机器人具有看、听、说的能力,并且可以被计算机远程控制。对于这样的遥控机器人,只要有合适的软件,就可以实现远程监控和远程会议。
图3用类图显示了机器人的结构。UML类图是特别在EOC开发中使用的。对于有疑问的对象可使用这种传统方法来显示其硬件和软件功能。聚合标识表示一个对象是另一个对象的一部分,而属性和方法通常用于显示每个对象的数据和功能。
图3 遥控机器人的UML类图
通过查看对象的性质,我们发现几乎所有的对象都是在默认状态下运行(即默认软件)。只有配置和运动对象是自定义的对象,也就是在默认软件基础上添加了新的功能,在这个案例中就是如此。当机器人加电后,配置对象初始化其他的对象。然后它等待用户通过TCPIP对象将它与机器人连接。当连接成功后,它配置其他对象使用TCPIP对象经由TCP/IP连接来收发数据。每个对象都对自己的数据流向负责:摄像对象发送视频数据,声音对象交换音频数据,运动对象接收运动控制命令。
图4 遥控机器人和位于其头部的组件
图4显示了位于遥控机器人头部的这些对象。配置对象在机器人整个使用期间监控其连接状态。当一个远程会话关闭,配置对象将机器人返回到初始状态并等待新的会话。由于每个模块处理它自己的低层任务,高层的控制其实不需要很复杂。
用于控制机器人的运动对象包含了好几个子对象。运动对象的高层软件存储在一个类中,其中仅仅包含了总线管理功能。在遥控机器人中包含了平衡和驱动软件,用于保持机器人的平衡和管理机器人的转弯和旋转。
该软件是一个定时循环,不断轮询红外探测对象的倾斜传感器和马达控制器对象的译码器。从得到的轮询值,它计算出当前的角度、角速率、角加速率、运动速率。运动对象通过TCPIP对象经由第二条总线接口接收运动指令,并连接到机器人上层对象中。计算和接收到的值都通过平衡算法得到推动值,并通过马达控制器对象应用到马达上。
综上所述,我们所描述的遥控机器人系统包含了计算机软件用于远程控制机器人。计算机软件包含了一个基于DirectShow的显示屏和一个通过因特网收发音频和控制数据的控制面板程序。计算机的用户接口是一个显示屏(640×480像素),显示从机器人传来的视频。用户使用计算机键盘的上下左右箭头来控制机器人。
[1] A S Berger. Embedded Systems Design: An Introduction to Processes, Tools and Techniques[M].[S.L]: CMP Books, 2002.
[2] T Vallius, J Haverinen, J Ro ning. Object-Oriented Embedded System Development Method for Easy and Fast Prototyping [C]//Proc. Int'l Conf. Machine Automation, Osaka University and Japanese Council of International Federation for the Promotion of Mechanism and Machine Science, 2004: 435-440.
[3] T Vallius, J Ro ning. Embedded Object Concept: Case Balancing Two-Wheeled Robo[J]. Intelligent Robots and Computer Vision XXV: Algorithms, Techniques, and Active Vision. 2007, 6764:1-14.
[4] T Vallius, J Ro ning. Combining Atomi Objects into a Single PCB for Mass Production [C]//Proc. 3rd Int'l Symp. Industrial Embedded Systems, IEEE Press,2008: 89-96.
[5] T Vallius, J Roz ning. ATOMI II Framework for Easy Building of Object Oriented Embedded Systems[C]// Proc. 9th Euromicro Conf. Digital System Design, Architectures, Methods and Tools, IEEEPress, 2006: 464-474.
徐蓉(讲师),研究方向为嵌入式实时系统。
EOC Development Method in Embedded System
Xu Rong
(Sichuan Normal University, Chengdu 610068,China)
The embedded-object concept, EOC, applies common object-oriented software methods to the design of embedded systems. These modular entities, representing objects in object-oriented design, function as electronic building blocks that can be assembled into new embedded systems. The goal of EOC is to make embedded-system design faster and easier while preserving the commercial applicability of the resulting devices.
embedded object concept; object-oriented design; embedded system
TP311.5
A
珍
2013-12-06)