论文部分内容阅读
摘要:嵌入式技术及物联网技术飞速发展的今天,嵌入式系列课程的教学也在各大院校中开展起来,嵌入式组件设计属于软硬件结合设计的一门学科。介绍了嵌入式组件设计概念、体系结构及发展方向。设置了嵌入式组件设计课程内容,包括嵌入式驱动程序设计、控件设计和基本组件设计三部分内容,对培养适应社会需求的嵌入式技术人才有着重要意义。
关键词:嵌入式组件;驱动程序;课程研究
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)21-0044-02
计算技术的发展经历了三次革命:存储程序计算机、高级编程语言和组件级编程。在通用计算机中利用面向对象技术进行编程,实现代码重用。而现在的嵌入式技术中也需要这样的功能,开发一个组件,该组件可以很容易作为其他程序的组成部分使用。嵌入式系统在人们的印象中多应用在工业控制领域以及智能机器人,但随着移动通讯以及智能家电、网络家电的发展,嵌入式系统的应用越来越广。在任何大中型嵌入式软件设计项目中,重要的是在代码编写之前完成某种形式规范。组件级设计也不例外。在每一组代码前,用一组描述组件接口的形式规范描述代码的属性和方法。在程序开发过程中可以在任意时刻添加该组件。在组件级编程中,可以利用单个组件(例如按钮、列表框或文本框控件)组合成多个功能复杂的大型程序。[1]
一、嵌入式组件概述
嵌入式组件设计是电子信息专业及相近专业的一门专业课,其目的是使学生了解一种重要的、最新的应用程序开发风格——组件级编程和设计的方法,并将这种组件设计与嵌入式系统联系起来,使嵌入式系统设计更加方便简单。完成这些内容的学习后,使学生能在嵌入式系统中轻松开发大量基于组件的应用程序,而且还具备开发各种第三方定制组件所需的技能。
1.嵌入式驱动程序设计
设备驱动程序是介于硬件和OS内核之间的软件接口,是一种低级的、专用于某一硬件的软件组件。驱动程序模块,就可以把操作系统的API函数和底层的硬件分离开来。当外围设备改变的时候,只需更换相应的驱动程序,不必修改操作系统的内核以及运行在操作系统中的软件。[2]該部分包括基于ARM架构的串行口通讯、键盘驱动原理、I/O接口电路、A/D接口电路、LCD的驱动控制、触摸屏程序设计、USB接口组件设计的内容。
2.控件设计
与Windows操作系统类似,控件是可视化开发的基础。对于开发应用程序的用户来说,控件是一个独立的组件,有着自己的显示方式和动态内存管理模式,设置中有的控件还可以向系统发送自己的消息。用户不需要掌握控件的内部到底是如何工作的,只需通过控件提供的API函数改变控件相应的属性,即可改变控件的显示方式。控件的引入可以大大方便用户的开发,加速用户应用程序界面的编写速度。同时,也为运行在操作系统上的应用程序的界面提供了统一的标准,方便了使用。控件设计包括消息、文本框控件、列表框控件、按钮控件、窗口控件、绘图控件、系统时间功能部分应用程序编写。
3.基本组件设计
前面介绍的几种组件都属于单个组件的开发设计,而组件级编程中涉及到的组件是综合组件,包含多个单个组件设计。该组件级编程可以完成嵌入式系统中包括PDA、电子字典、手机等设备的基本功能的实现。
基本功能组件包括:电话簿组件设计、记事本组件设计、日程表组件设计、系统时间组件设计、日历组件设计、智能拼音输入法组件设计、科学型计算器组件设计,这部分处于用户应用程序中。
二、嵌入式驱动程序设计研究
1.ARM的串行口通讯
这部分设计目标是掌握串行通讯原理;掌握编程实现ARM和计算机实现串行通讯。ARM通过监视串行口,把在程序中插入的想要反馈程序运行情况的串行口语句输出到显示器中的超级终端中,这样便可以实时监控程序的运行情况,方便调试程序。串行口组件设计是将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的),即按PC键盘通过超级终端发送数据,开发板将接收到的数据再返送给PC,在超级终端上显示。[3]
2.键盘驱动原理
这部分设计目标是掌握键盘驱动的基本原理;熟悉不带操作系统键盘驱动实现;了解带操作系统键盘驱动实现。键盘的设计是将一个瞬时接触开关放置在每一行与每一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。键盘扫描过程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。一旦处理器判定有一个键按下,键盘扫描软件将过滤掉抖动并且判定哪个键被按下。每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判定应该采取什么行动。
3.I/O接口电路
这部分设计目标是掌握组件接口的设计;掌握基于ARM开发板对I/O编程的方法;掌握LED工作原理、编程实现LED实现。I/O设备、相关的设备驱动程序和I/O子系统组成嵌入式I/O系统。I/O系统的目标是对RTOS和应用程序员隐藏设备特定的信息,并且对系统的外围I/O设备提供一个统一的访问方法。
利用I/O编程的方法,在ARM开发板的数码管上显示键盘输入的键值。显示器的种类很多,从液晶显示、发光二极管显示到CRT显示器,都可以与微机配接。在单片机应用系统中常用的显示器主要有发光二极管数码显示器,简称LED显示器。LED显示器具有驱动电路简单、耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点,但显示内容有限,不能显示图形,因而其应用有局限性。当选用共阴极的LED显示器时,所有发光二极管的阴极连在一起接地,当某个发光二极管的阳极加入高电平时,对应的二极管点亮。因此要显示某字形就应使此字形的相应段的二极管点亮,实际上就是发送一个用不同电平组合代表的数据字来控制LED的显示,此数据称为字符的段码。 4.ARM的A/D接口电路
这部分设计目标是掌握A/D接口原理、编程实现ARM系统的A/D功能;了解模型组件设计方法。能将模拟量转换为数字量的电路称为模数转换器,简称A/D转换器或ADC;能将数字量转换为模拟量的电路称为数模转换器,简称D/A转换器或DAC。ADC和DAC是沟通模拟电路和数字电路的桥梁,也可称之为两者之间的接口。A/D 转换器是模拟信号源和CPU 之间联系的接口,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。一般A/D转换过程要经过采样、保持、量化和编码四个步骤。前两步在取样—保持电路中完成,后两步则在A/D转换器中完成。D/A转换器的基本原理是将输入的每一位二进制代码按其权的大小转换成相应的模拟量,然后将代表各位的模拟量相加,所得的总模拟量就与数字量成正比,便实现了从数字量到模拟量的转换。
5.LCD的驱动控制
这部分设计目标是掌握LCD(液晶屏)显示器的基本原理、驱动控制方法;熟悉用总线方式驱动LCD、用ARM内置的LCD控制器驱动LCD。LCD显示器的基本原理就是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元的通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使光线通过。
6.触摸屏程序设计
这部分设计目标是了解触摸屏基本概念与原理、编程实现对触摸屏的控制;了解嵌入式系统的基本组件模块和其他组件模块。触摸屏是专门处理是否有笔或手指等物体按下触摸屏,平常相互绝缘的两层导电层就在触摸点位置有了一个接触,并在按下时分别给两组电极通电。因其中一面导电层(顶层)接通X轴方向的5V均匀电压场,使得检测层(底层)的电压由零变为非零,控制器侦测到这个接通后,其对应位置的模拟电压信号经过A/D转换送回处理器。经过坐标转换后,得到触摸点的x,y坐标。
7.USB接口组件设计
这部分设计目标是了解USB基本概念与原理、编程实现对USB接口的控制。可以使用USB进行连机通信,当连接USB的时候,可以从PC机通过USB端口下载程序,也可以上传文件至PC机,也可以断开USB停止上传和下载。
三、嵌入式控件设计研究
文本框控件可以显示文件和数据内容,能够通过对文本框的编辑修改内容,并可保存到文件,系统调用以后,文件内容不丢失。列表框控件可以列出系统中的存储在存储器中的指定扩展名的文件,也可以将要显示的数据列出来。并且还可以控制列表框中的列表内容上下显示,及添加新的列表内容。
按钮控件是一个非常重要的组件。大多数功能设计或游戏设计都需要按钮控件。当通过触摸屏对按钮控件进行单击、双击、按下、抬起、移动时,都会触发按钮控件,按钮控件会根据不同的动作进行响应。
窗口控件的作用是输出信息、显示图形。像游戏活动区域、手写输入区域、显示内容区域等,这些区域都需要窗口控件来完成。游戏只能在窗口中进行,不能离开该窗口。窗口以外的区域为游戏说明区域或控制游戏按钮区域。手写输入只能在窗口内输入,在窗口以外的区域不识别。
绘图设备上下文(DC)保存了每一个绘图对象的相关参数(如绘图画笔的宽度、绘图的原点坐标等)。在多任务操作系统中,通过绘图设备上下文来绘画,可以保证在不同的任务中绘图的参数相互独立、互不影响。
四、总结
经过该门课程学习,可以从学会设计一个控件,如按钮、文本框、列表框到根據这些控件完成一项功能设计,如可以将存储卡中的bmp格式的位图文件名列表显示出来,通过点击可以把图形显示出来。了解串行口、键盘、I/O接口、A/D接口、D/A接口、液晶屏、触摸屏、USB接口的工作原理及如何让这些硬件动起来,很容易从中找到设计灵感,找到嵌入式开发的乐趣,完成属于自己的嵌入式系统应用程序设计。
参考文献:
[1]王小妮,魏桂英,杨根兴.嵌入式组件设计[M].北京:北京航空航天大学出版社,2012.
[2]王小妮.基于嵌入式系列课程的教学改革与探索[J].教育理论与教学研究,2013,(5).
[3]王田苗.嵌入式系统设计与实例开发(第3版)[M].北京:清华大学出版社,2008.
(责任编辑:王意琴)
关键词:嵌入式组件;驱动程序;课程研究
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2014)21-0044-02
计算技术的发展经历了三次革命:存储程序计算机、高级编程语言和组件级编程。在通用计算机中利用面向对象技术进行编程,实现代码重用。而现在的嵌入式技术中也需要这样的功能,开发一个组件,该组件可以很容易作为其他程序的组成部分使用。嵌入式系统在人们的印象中多应用在工业控制领域以及智能机器人,但随着移动通讯以及智能家电、网络家电的发展,嵌入式系统的应用越来越广。在任何大中型嵌入式软件设计项目中,重要的是在代码编写之前完成某种形式规范。组件级设计也不例外。在每一组代码前,用一组描述组件接口的形式规范描述代码的属性和方法。在程序开发过程中可以在任意时刻添加该组件。在组件级编程中,可以利用单个组件(例如按钮、列表框或文本框控件)组合成多个功能复杂的大型程序。[1]
一、嵌入式组件概述
嵌入式组件设计是电子信息专业及相近专业的一门专业课,其目的是使学生了解一种重要的、最新的应用程序开发风格——组件级编程和设计的方法,并将这种组件设计与嵌入式系统联系起来,使嵌入式系统设计更加方便简单。完成这些内容的学习后,使学生能在嵌入式系统中轻松开发大量基于组件的应用程序,而且还具备开发各种第三方定制组件所需的技能。
1.嵌入式驱动程序设计
设备驱动程序是介于硬件和OS内核之间的软件接口,是一种低级的、专用于某一硬件的软件组件。驱动程序模块,就可以把操作系统的API函数和底层的硬件分离开来。当外围设备改变的时候,只需更换相应的驱动程序,不必修改操作系统的内核以及运行在操作系统中的软件。[2]該部分包括基于ARM架构的串行口通讯、键盘驱动原理、I/O接口电路、A/D接口电路、LCD的驱动控制、触摸屏程序设计、USB接口组件设计的内容。
2.控件设计
与Windows操作系统类似,控件是可视化开发的基础。对于开发应用程序的用户来说,控件是一个独立的组件,有着自己的显示方式和动态内存管理模式,设置中有的控件还可以向系统发送自己的消息。用户不需要掌握控件的内部到底是如何工作的,只需通过控件提供的API函数改变控件相应的属性,即可改变控件的显示方式。控件的引入可以大大方便用户的开发,加速用户应用程序界面的编写速度。同时,也为运行在操作系统上的应用程序的界面提供了统一的标准,方便了使用。控件设计包括消息、文本框控件、列表框控件、按钮控件、窗口控件、绘图控件、系统时间功能部分应用程序编写。
3.基本组件设计
前面介绍的几种组件都属于单个组件的开发设计,而组件级编程中涉及到的组件是综合组件,包含多个单个组件设计。该组件级编程可以完成嵌入式系统中包括PDA、电子字典、手机等设备的基本功能的实现。
基本功能组件包括:电话簿组件设计、记事本组件设计、日程表组件设计、系统时间组件设计、日历组件设计、智能拼音输入法组件设计、科学型计算器组件设计,这部分处于用户应用程序中。
二、嵌入式驱动程序设计研究
1.ARM的串行口通讯
这部分设计目标是掌握串行通讯原理;掌握编程实现ARM和计算机实现串行通讯。ARM通过监视串行口,把在程序中插入的想要反馈程序运行情况的串行口语句输出到显示器中的超级终端中,这样便可以实时监控程序的运行情况,方便调试程序。串行口组件设计是将接收到的字符再发送给串口(计算机与开发板是通过超级终端通讯的),即按PC键盘通过超级终端发送数据,开发板将接收到的数据再返送给PC,在超级终端上显示。[3]
2.键盘驱动原理
这部分设计目标是掌握键盘驱动的基本原理;熟悉不带操作系统键盘驱动实现;了解带操作系统键盘驱动实现。键盘的设计是将一个瞬时接触开关放置在每一行与每一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。键盘扫描过程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。一旦处理器判定有一个键按下,键盘扫描软件将过滤掉抖动并且判定哪个键被按下。每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判定应该采取什么行动。
3.I/O接口电路
这部分设计目标是掌握组件接口的设计;掌握基于ARM开发板对I/O编程的方法;掌握LED工作原理、编程实现LED实现。I/O设备、相关的设备驱动程序和I/O子系统组成嵌入式I/O系统。I/O系统的目标是对RTOS和应用程序员隐藏设备特定的信息,并且对系统的外围I/O设备提供一个统一的访问方法。
利用I/O编程的方法,在ARM开发板的数码管上显示键盘输入的键值。显示器的种类很多,从液晶显示、发光二极管显示到CRT显示器,都可以与微机配接。在单片机应用系统中常用的显示器主要有发光二极管数码显示器,简称LED显示器。LED显示器具有驱动电路简单、耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点,但显示内容有限,不能显示图形,因而其应用有局限性。当选用共阴极的LED显示器时,所有发光二极管的阴极连在一起接地,当某个发光二极管的阳极加入高电平时,对应的二极管点亮。因此要显示某字形就应使此字形的相应段的二极管点亮,实际上就是发送一个用不同电平组合代表的数据字来控制LED的显示,此数据称为字符的段码。 4.ARM的A/D接口电路
这部分设计目标是掌握A/D接口原理、编程实现ARM系统的A/D功能;了解模型组件设计方法。能将模拟量转换为数字量的电路称为模数转换器,简称A/D转换器或ADC;能将数字量转换为模拟量的电路称为数模转换器,简称D/A转换器或DAC。ADC和DAC是沟通模拟电路和数字电路的桥梁,也可称之为两者之间的接口。A/D 转换器是模拟信号源和CPU 之间联系的接口,它的任务是将连续变化的模拟信号转换为数字信号,以便计算机和数字系统进行处理、存储、控制和显示。一般A/D转换过程要经过采样、保持、量化和编码四个步骤。前两步在取样—保持电路中完成,后两步则在A/D转换器中完成。D/A转换器的基本原理是将输入的每一位二进制代码按其权的大小转换成相应的模拟量,然后将代表各位的模拟量相加,所得的总模拟量就与数字量成正比,便实现了从数字量到模拟量的转换。
5.LCD的驱动控制
这部分设计目标是掌握LCD(液晶屏)显示器的基本原理、驱动控制方法;熟悉用总线方式驱动LCD、用ARM内置的LCD控制器驱动LCD。LCD显示器的基本原理就是通过给不同的液晶单元供电,控制其光线的通过与否,从而达到显示的目的。因此,LCD的驱动控制归于对每个液晶单元的通断电的控制,每个液晶单元都对应着一个电极,对其通电,便可使光线通过。
6.触摸屏程序设计
这部分设计目标是了解触摸屏基本概念与原理、编程实现对触摸屏的控制;了解嵌入式系统的基本组件模块和其他组件模块。触摸屏是专门处理是否有笔或手指等物体按下触摸屏,平常相互绝缘的两层导电层就在触摸点位置有了一个接触,并在按下时分别给两组电极通电。因其中一面导电层(顶层)接通X轴方向的5V均匀电压场,使得检测层(底层)的电压由零变为非零,控制器侦测到这个接通后,其对应位置的模拟电压信号经过A/D转换送回处理器。经过坐标转换后,得到触摸点的x,y坐标。
7.USB接口组件设计
这部分设计目标是了解USB基本概念与原理、编程实现对USB接口的控制。可以使用USB进行连机通信,当连接USB的时候,可以从PC机通过USB端口下载程序,也可以上传文件至PC机,也可以断开USB停止上传和下载。
三、嵌入式控件设计研究
文本框控件可以显示文件和数据内容,能够通过对文本框的编辑修改内容,并可保存到文件,系统调用以后,文件内容不丢失。列表框控件可以列出系统中的存储在存储器中的指定扩展名的文件,也可以将要显示的数据列出来。并且还可以控制列表框中的列表内容上下显示,及添加新的列表内容。
按钮控件是一个非常重要的组件。大多数功能设计或游戏设计都需要按钮控件。当通过触摸屏对按钮控件进行单击、双击、按下、抬起、移动时,都会触发按钮控件,按钮控件会根据不同的动作进行响应。
窗口控件的作用是输出信息、显示图形。像游戏活动区域、手写输入区域、显示内容区域等,这些区域都需要窗口控件来完成。游戏只能在窗口中进行,不能离开该窗口。窗口以外的区域为游戏说明区域或控制游戏按钮区域。手写输入只能在窗口内输入,在窗口以外的区域不识别。
绘图设备上下文(DC)保存了每一个绘图对象的相关参数(如绘图画笔的宽度、绘图的原点坐标等)。在多任务操作系统中,通过绘图设备上下文来绘画,可以保证在不同的任务中绘图的参数相互独立、互不影响。
四、总结
经过该门课程学习,可以从学会设计一个控件,如按钮、文本框、列表框到根據这些控件完成一项功能设计,如可以将存储卡中的bmp格式的位图文件名列表显示出来,通过点击可以把图形显示出来。了解串行口、键盘、I/O接口、A/D接口、D/A接口、液晶屏、触摸屏、USB接口的工作原理及如何让这些硬件动起来,很容易从中找到设计灵感,找到嵌入式开发的乐趣,完成属于自己的嵌入式系统应用程序设计。
参考文献:
[1]王小妮,魏桂英,杨根兴.嵌入式组件设计[M].北京:北京航空航天大学出版社,2012.
[2]王小妮.基于嵌入式系列课程的教学改革与探索[J].教育理论与教学研究,2013,(5).
[3]王田苗.嵌入式系统设计与实例开发(第3版)[M].北京:清华大学出版社,2008.
(责任编辑:王意琴)