工业仪表与自动化装置2003年第4期
单片机控制系统中实现DMA数据传送的方法
朱长清
(军械工程学院,河北石家庄050003)
[摘要]为实现单片机控制系统中高速数据的传送,应用接口扩展电路和DMA控制器,通过存储器扩展,在几乎不占用单片机资源的情况下,实现了单片机控制系统的DMA数据传送。该方法可用于软盘驱动器或高速采样的接口设计。
[关键词]控制系统;单片机;DMA;存储器扩展
[中图分类号]TP391[文献标识码]B[文章编号]10000682(2003)04005402
AmethodtoperformDMAdatatransferinasinglechipmicrocomputercontrolsystem
ZHUChangqing
(OrdnanceEngineeringCollege,HebeiShijiazhuang050003,China)
Abstract:Inordertotransferdatawithgreatspeedinasinglechipmicrocomputercontrolsystem,theDMAcircuitisdesignedwithaninterfacecircuitandaDMAcontroller.Byextendingthememory,thedatacanbetransferredbyDMAwithlittleshareinthesinglechipmicrocomputersresources.Thismethodcanbeusedtodesigntheinterfaceofafloppydiskdriverorahighspeedsamplingcircuit.
Keywords:Controlsystem;Singlechipmicrocomputer;DMA;Extendingmemory
1引言
许多单片机控制系统中,信息的实时处理往往需要数据的批量传送。不管是采用软件查询,还是采用中断技术,它们都是依靠程序控制,每次传送数据都需要单片机执行若干条指令,因而传输速率受单片机指令运行速度的限制。例如,51系列单片机将外设某一数据存入片外RAM,至少要运行2周期指令MOVX和更改地址指针DPTR指令各两次,若采用12MHz时钟,则需4s。可见,即使不考虑单片机的其它运算,其数据传送速度也只能达到250Kbyte/s。对于象高速数据采集等需要成批交换数据的场合,速度实在是太慢了。为了实现单片机与高速外设的数据交换,应用接口扩展电路和DMA控制器,在几乎不占用单片机资源的情况下,实现了单片机控制系统的DMA数据传送。
只要应用双向RAM作为外存储器或应用简单的门控电路就可实现。但对于复杂的单片机控制系统,要解决高速外设和低速CPU之间的矛盾,就不能象微机那样通过出借系统总线来实现数据的DMA传送,更不能因数据传送而中断CPU的工作。为此要求:
(1)当单片机控制系统需与高速外设交换数据时,单片机只能作简单的响应,不能长时间中断工作。解决的办法是采用扩展数据存储器系统,数据交换时CPU只出借扩展数据存储器作为DMA数据交换的存储器。
(2)为便于单片机控制系统与高速数据采集或软磁盘驱动器等外设的连接,其DMA控制方式应具有一致性,符合通用接口标准。
信号线共6条,即:DMA请求信号DREQ;DMA响应回答信号DACK;DMA传送过程结束信号EOP;
输入/输出设备读写信号线IOR和IOW;输入/输出设备准备就绪信号线READY。(3)DMA传送控制与接口尽量不占用单片机的系统资源,只占用一个中断来响应DMA总线请求(出借扩展存储器)和告知DMA传送完毕(因两者具有先后次序,故只用一个中断)。另外根据单片机当2几点说明
对于单片机控制系统中简单的DMA数据传送,
收稿日期:20020905
作者简介:朱长清(1963),男,教授,主要从事仪器仪表及计量测试专业的科研和教学工作。
2003年第4期工业仪表与自动化装置
55
前处理任务的缓急情况,相应对DMA请求作出应答,对DMA请求的应答并不占用单片机的资源。
展芯片或选用多个扩展芯片,可大大扩展存储器的容量,如采用8255并口扩展芯片,即可扩展64K的存储容量。
32DMA控制电路
利用通用DMA控制器构成了图3!2所示的单片机数据DMA传送通道,它提供了4通道标准的DMA传送接口信号,其工作过程为:
3电路实现原理
31存储器扩展电路
51系列单片机的外部存储容量只有64K,在高速数据采集等情况下,其容量明显不足。若以采样率50KS/s计算,只能容纳1s多的采样量,况且要求DMA传送期间CPU要照常工作,包括对外部数据存储器的访问。这就要求对存储容量进行扩展。将扩展的存储器用于DMA,原有的存储器继续作为工作存储器。下面以图3!1所示存储器扩展电路为例说明存储器扩展的原理。为说明问题的方便,省去了编码电路,只以单片机的P27和P26作为片选线,下一节的DMA控制电路也简单以P25作片选线。因而特此说明,原理电路中各寄存器的端口地址不惟一。
图3-2DMA控制电路
321初始化
单片机控制系统开机后,首先要对8155和8237初始化。
图3-1通过8155扩展6264存储器
8155初始化。8155只有1个状态寄存器,通过对地址3F00H赋值,即可设定PB口和PC口为输出口,用于为6264提供地址;PA口为双向输入输出口,作为6264的数据口,存数据时,3F00H的值为0DH;取数据时,3F00H的值为0CH。
8237初始化。将8155的PC5位置0,2片4066组成的门控电路使8237处于非DMA状态。此时,8237的端口读写控制线与单片机的读写线分别接通。通过对地址5F00H~5FFFH(8237的内部寄存器端口地址)的设定,完成8237的初始化。
针对单片机控制系统的特点,通常初始化8237的内容包括:
(1)决定DMA的工作通道;
(2)数据按成组方式传送;
(3)确定访存首地址及地址的增减变化;(4)传送字节数;
(5)确定请求信号和应答信号的有效电平;(6)屏蔽。
(下转第30页)
8155芯片内具有256字节的RAM,2个8位(PA和PB)、1个6位(PC)可编程I/O口。编程设定PB口和PC口为输出口,用于为6264提供地址;PA口为双向输入输出口,作为6264的数据口。其地址分配为:
8155的RAM字节地址:3E00H~3EFFHI/O口地址:命令/状态口3F00H
PA口PB口PC口
3F01H3F02H3F03H
读写扩展存储器6264时,在PB口送入6264的低8位地址,PC口送入另5位地址(PC口的另外1位作为单片机对DMA请求的应答线)。通过读写PA口即可完成扩展存储器的读写。虽然存取一次数据要用3条外部RAM读写指令,但这样不但扩展了存储器容量,而且更重要的是在保证CPU不中断工作的条件下,为数据的DMA传送创造了条件。
另外,这种存储器扩展方式,通过选用不同的扩 30
工业仪表与自动化装置2003年第4期
5单片机控制系统
51单片机的选择
由于在工业领域中,电磁干扰强,对控制系统中单片机的可靠性要求很高。单片机选用内部带有8K字节FLASHROM的低功耗AT89C52。AT89C52单片机为模块结构,集成度高,内部总线,并行I/O数据端口,抗干扰能力强,工作可靠,性能价格比高,能满足系统的设计要求。为提高控制系统的抗干扰能力,用MAX812L作为电源监控电路,并提供手动复位电路。52D/A通道设计
根据硬质聚氯乙烯薄膜生产系统对主电机速度波动的严格要求,提出较高控制精度,为此选用了12位DAC1210作为D/A转换器。DAC1210转换器的输出电压信号接到变频电源的外部模拟电压接口,结合主电机转速检测和模糊复合控制器,构成闭环无级交流变频调速系统。53M/T法测速
为控制进料量最佳值,必须精确控制主电机的速度,为此选用光码盘作为测速装置,并采用低速、高速要求测量精度都较高的M/T法测速。提高了系统的控制品质。54微机系统软件设计
图5!1系统主程序
流程图
系统软件采用人机对话方式和模块化结构,软件上采用了采样滤波及独特的现场数据保存技术,保证了系统的可靠性。图5!1是系统主程序流程图。
6结论
基于模糊控制的硬质聚氯乙烯薄膜生产机变频调速系统投入运行后,与原系统
相比,新系统加速过程平稳、响应速度快、稳态误差小(经测试仅有05%),完全达到了设计要求;提高了产品质量,供料均衡性好,薄膜的宽度和厚度比较稳定,不再有废品出现,次品也很少出现;提高了产品产量,从平均一个台班生产170kg,上升到210kg,提高了235%。
[参考文献]
[1]孙增圻智能控制理论与技术[M].北京:清华大学出
版社,1997.
[2]李人厚智能控制理论与方法[M].西安:西安交通大
学出版社,1998
[3]苏彦民电力拖动系统的微型计算机控制[M].西安:
西安交通大学出版社,1988
(上接第55页)
322DMA传送
系统完成初始化之后即进入正常工作状态。若有DMA请求,即可进行DMA传送过程。
(1)8237接收到DMA请求信号DREQ后,输出∀总线#请求信号HOLD,引起单片机中断,中断响应程序包括:解除8237的屏蔽功能;保持P26、P25置0,使能6264、8237;
P27置1,使8155空闲;6264脱离单片机控制。8155的PC5由0变1;门控电路使8237的存储器读写线与6264的读写线接通,完成DMA通道的连接。同时,8155的PC5作为CPU对DMA请求的回应,启动了DMA传送过程。
(2)8237输出DACK回答信号,开始DMA传送。
(3)传送结束,8237输出EOP信号,单片机检测到2次中断的发生,使8155的PC5置0,恢复控制系统的原有工作状态。同时为下次DMA传送作好了
准备,并通知外设本次DMA传送结束。
4结论
通过存储器扩展,在仅占用单片机几十个存储空间和一个中断源的情况下,实现了单片机控制系统的数据DMA传送,保证了单片机能在DMA传送期间的正常工作。实践证明,该系统可方便用于信号的高速采集,并可作为单片机控制系统与软盘驱动器的接口。
[参考文献]
[1]朱长清单片机与CRT显示器的接口[J]电子技术,
2000(2).
[2]阎慧娟,张金烈微型计算机接口技术[M]中国人事
出版社,1994
[3]何立民单片机应用系统设计[M]北京航空航天大
学出版社,1990
[4]赵依军,胡戎单片微机接口技术[M]人民邮电出版
社,1989
因篇幅问题不能全部显示,请点此查看更多更全内容