APP下载

基于模块数据库的51单片机系统原理图自动生成软件的研究

2012-07-25袁晓骏路林吉

微型电脑应用 2012年7期
关键词:原理图端口单片机

袁晓骏,路林吉

0 引言

当今,在基于单片机的系统设计过程中,各主流 EDA软件只是停留在提供最基本的绘图、编辑工具阶段,而不涉及包括器件选取和连接的人脑思考环节。针对这一现状,本文研究的目标是:设计并实现一个计算机软件,该软件的潜在用户是单片机系统设计人员,设计人员通过使用该软件,只需进行相对简单的需求录入,就能得到其所需的单片机系统的原理图,从而代替设计人员的原理图设计工作。本软件从基于51系列单片机的系统设计入手,将来可扩展到支持多种单片机。

1 总体设计方案

单片机系统的设计遵循着一种“模块化”的设计思想:所有的单片机系统均可分解为两个部分:一是单片机本身,二是围绕着单片机的外围部分。其中,外围部分按照功能的不同,可划分为相对独立的功能模块,各模块均通过导线与单片机或其它模块相连。设计人员按照所需的功能不同,逐个设计单片机的外围功能模块,最终形成完整的系统。

基于上述思想,本文所研究之软件的总体实现方案是:首先构建出由标准、常用电路组成的完成不同的系统功能的通用模块数据库;其次设计出人机交互界面,通过预置的规则将用户的需求与数据库内的对应模块建立联系;然后编制出模拟设计人员思考过程的程序,将系统所需的各功能模块与单片机进行自动连接;最后将以结构化数据表述的系统原理图用图形方式输出。软件的架构,如图1所示:

图1 软件架构图

该软件各组成部分描述如下:

1) 数据库:是存放基础数据的容器,同时也是程序运行中的工作空间。该软件将完整的单片机系统按照功能的不同,分为不同种类的模块,数据库中预存了大量的各类功能模块。

2) 人机交互界面:是用户与软件进行交互的媒介,用户通过此界面进行系统需求录入、查看和保存生成的原理图、维护数据库等操作。

3) 用户需求处理程序:接收用户录入的原始需求,从数据库的基础数据中选取所需的单片机、功能模块数据,并形成临时数据表存放在在数据库中。

4) 自动连接程序:对用户需求处理程序产生的临时数据进行进一步的处理,从而形成完整的单片机系统原理图数据。

5) 原理图输出程序:将最终生成的单片机系统原理图绘制到人机交互界面上,并根据用户的要求将原理图以文件形式保存到软件外部。

6) 数据库维护程序:根据用户的要求,对数据库进行模块的添加、删除和修改等相关操作。

2 数据库设计

数据库的用途有两个方面:一是预存设计好的各类单片机外围功能模块的数据,包括每个模块的外部视图和内部结构。二是作为软件运行是的程序工作空间,暂存和处理临时数据。

数据库表的设计如下:

1) 模块总表:该表列出了所有设计好的模块,每个模块用表中的一条记录来描述。每个模块通过编号、名称、类型等字段来描述。

2) 模块的外部视图表:该表屏蔽了模块内部的结构,仅描述模块的外部端口,该表用来完成对单片机系统的模块化构建。模块的每一个外部端口均用表中的一条记录来描述,每条记录由模块编号、模块端口编号、模块端口名称等字段组成。

3) 模块的内部结构表:该表列出了每个模块内部所有的器件及其之间的连线,是进行原理图绘制的依据,并可保存到软件外部的文件中。表中,每个模块内的每一个器件、每一条连线均用表中的一条记录来描述。

4) 器件表:该表列出了所有预设模块中用到的所有器件,描述了每个器件的外部管脚。用来在进行原理图绘制时标明器件的管脚编号。

3 人机交互界面设计

通过人机交互界面,软件向用户提供了需求录入、原理图管理和数据库维护等操作功能。人机交互界面分为:需求录入页面,原理图管理页面和数据库维护页面。

需求录入页面是整个人机交互界面中最主要的部分,其布局遵循“模块化”的思想,将页面划分为多个操作区域,每个操作区域对应一类功能模块;每一类模块提供多个参数供设置,参数的设置可通过勾选或下拉菜单选择的方式操作。

由于一个实际的单片机系统不可能同时涵盖所有类型的功能模块,而仅仅是其中的数个,因此除了复位、时钟等几个必备模块外,其余的非必选模块在界面上均有“选中”与“不选中”的控制措施。页面刚启动时,所有非必选模块的操作区域均处于不可编辑的状态;只有在“选中”该模块后,其操作区域才变为可编辑状态,以供用户继续进行参数的设置。

4 用户需求处理程序的设计

用户需求处理程序根据用户录入的需求,从数据库的基础数据中自动选取所需的数据,并形成临时数据暂存在库中,供后续的自动连接程序使用。为使软件能够识别和处理用户需求,程序将用户录入的需求转化为程序的变量值:每个可选模块的选中与否各由一个变量控制,初值为0,代表未选中;用户如果在界面上选中了该模块,则变量值变为1。

为每个模块的每个参数各设置一个变量,变量初始值为1,代表默认选项;用户如果在界面更改了该参数,则变量值相应的改变。

有了以程序变量形式表达的用户需求后,程序即可以按照一套既定的规则,自动进行模块的选取。本程序的处理结果是:在数据库中生成临时数据性质的“模块总表”和“模块外部视图表”,表中内容为本次工作所需的所有模块。

5 自动连接程序的设计

在用户需求处理程序自动生成了所需模块之后,自动链接程序即投入运行,它将生成的模块与单片机进行自动链接,它分为以下几个顺序执行的过程:

(一) 过程1:先期预处理

本过程是自动连接程序执行的必经第一步,其总体思路是:模块的某些端口必须使用单片机特定P3端口的第二功能,如WR、RD、INT等;某些端口必须利用单片机的P0端口进行并行数据和地址的分时传输,并还可能利用P2端口进行高位地址的传输。故为了防止单片机的 P3、P0、P2端口被其它普通I/O需求占用,首先应为上述模块端口分配单片机资源,然后再为其余的模块端口分配资源。

如果发现单片机所能提供的I/O端口数量不能满足原始各模块的需求,则跳出本过程,然后由用户决定是继续进入后续的过程2或过程3,还是退出自动连接程序返回用户需求录入界面。

过程1的工作步骤,如图2所示:

图2 先期预处理流程图

(二) 过程2:数据端口复用预处理

由于单片机所能提供的I/O端口数量不能满足原始各模块的需求,本过程尝试采用数据端口复用的方法。对于同时存在的多个输出/输入类模块,可为其各配置一个数据锁存器或三态缓冲器,再将它们的并行数据端口全部复接到单片机P0.0~P0.7端口,从而节省了对单片机I/O端口的占耗。相应的,应采取片选控制的方法来对上述模块进行选通。过程2的工作步骤,如图3所示:

图3 数据端口复用预处理流程图

(三) 过程3:模块并行改串行预处理

由于单片机所能提供的I/O端口数量不能满足原始各模块的需求,同时数据端口复用预处理也失败,本过程尝试采用并行改串行的方法。首先找到可以将并行数据端口改为串行数据端口的模块,然后逐一将其替换为相应的串行模块。每替换完一个模块后,就重新核算单片机端口数是否够用。若够用则不再继续更改,若仍不够用就继续更改下一个可改模块。如果所有可改的模块均改完,而单片机的I/O端口数仍不满足需求,则意味着并行改串行预处理失败,同时也意味着自动连接程序无法完成模块与单片机的连接,则中断退出,返回用户需求录入界面,重新进行需求录入。过程 3的工作步骤,如图4所示:

图4 并行改串行预处理流程图

6 结束语

为验证软件可用性,特选取已经设计完成的实际系统,以系统需求提出者的角色通过人机交互界面录入需求,然后将自动生成的原理图与实际系统原理图进行比较。测试用例包括:基于单片机温度采集系统、基于单片机的数字闹钟系统等。测试结果表明,该软件自动生成的系统原理图与实例设计者绘制的原理图大体一致,具备正确性和可用性;而在元器件选择上,可能存在各自选取的型号不同但功能相同的情况;此外,在保证单片机端口使用正确的前提下,在被占用的端口编号、顺序上软件生成结果与人工设计结果有所不同。

[1]杨居义,马宁,靳光明,王益斌,单片机原理与工程应用[M],清华大学出版社,2009。

[2]赵广林,看图快速学Protel 99se电路设计与制版[M],电子工业出版社,2009。

[3]吴永,基于网络的单片机多点温度采集系统的设计[J],计算机测量与控制,2010,18(4):959~964。

[4]邓秉林,单片机在阀门控制系统中的应用[J],真空,2009,46(5):74~76。

[5]冯荣彪,王国良,骆明儿,基于单片机的激光测速系统设计[J],激光技术,2010,34(5):679~681。

猜你喜欢

原理图端口单片机
一种端口故障的解决方案
浅谈STM32核心板原理图设计
基于单片机的SPWM控制逆变器的设计与实现
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪
端口阻塞与优先级
系统网络端口安全防护