应用于双高速单片机系统中的双端口RAM的设计
- 格式:pdf
- 大小:148.41 KB
- 文档页数:3
第2期(总第141期) 2007年4月 机械工程与自动化 MECHANICAL ENGINEERING & AUT0MAT10N NO.2 Apr.
文章编号:1672—6413(2007)02—0074—03
应用于双高速单片机系统中的双端口RAM的设计
宋公明,周 华,刘 冲
(中国地质大学研究生院,湖北 武汉430074)
摘要:双端口RAM是一种特殊的数据存储芯片,利用双端口RAM可以实现双高速单片机总线方式的数据共 享。在本系统中,采用双端口RAM(IDT 7005L55)来实现单片机之间并行总线的数据共享,以此来完成两
单片机之间的通信和数据传输。 关键词:双端口RAM;数据共享;通信;高速单片机
中图分类号:TP368.1 文献标识码:A
0引言 多机系统中的一个关键问题是处理机之间的相互 通信。解决此问题的方式有很多,如采用I/0通信、 DMA内存搬移和共享存储器等方式,这些方式从结 构上可以分为松耦合与紧耦合。通过串行或并行I/0 口或总线而实现多CPU之间通信是松耦合方式,而 采用共享存储器的互联通信为紧耦合方式。紧耦合在 许多性能上要优于松耦合。比如,CPU之间的通信等 待时间少,系统硬件、软件资源可完全共享,可通过
A l5m/A7/P2.7 A 14m/A6/P2.6 A l3m/A5/P2.5 A12m/A4/P2.4 Alim/A3/P2.3 A10m/A2/P2.2 A9m/AI/P2.1 A8m/A0/P2.0
C805 1F02X AD7/I)7/P3.7 AD6/D6/P3.6 aDS/DS/P3.5 硒 | |P3.4 AD3/D3/P3.3 AD2/D2/P3.2 ADI/DI/P3.1 ADO/DO/P3.0
ALE/PO.5 PO.6 WD/PO.7 53 共享资源提供比较丰富的功能,通信可靠性高等等。 1双口RAM与MCU的电路设计 图1为双口RAM与MCU构成的数据通信接口
电路,双I:1 RAM的左、右端I:1的BUSY管脚分别接两 单片机的I/O管脚(查询方式)。在发生竞争时,被延 时的单片微机自动暂停访问双端I:1 RAM,待该侧
BUSY脚信号无效以后,继续访问所选单元。BUSY的 输出为漏极开路输出,需使用上拉电阻。
39
4l
43 44
47
5O 5l 52
l 57 U 74373 DO Q0 Dl Ql D2 Q2 D3 Q3 D4 Q4 D5 05 D6 Q6 D7 Q7
OE V CP G 2O 10
译码电路 2
62 6l 60
3 I/07L I/06L I/05L I/04L I/03L 1/02L I/01L OL 0EL IDTT005
(A14R)NC (A13R)NC A12R AUR AIOR A9R A8R
A7R A6R ASR A4R A3R A2R AlR AOR
0E R R/WR I/07R 1/06R 1/05R I/04R 1/03R 1/02R 1/01R I/.0.0J ̄ CER 50
33
4l
29 3O 27 26 25 ‘O—A—
图1双口RAM与MCU构成的数据通信接口电路
收稿日期:2006—09—08;修回日期:2006一ll一18 作者简介:宋公明(1980一),男,湖北黄冈人,硕士研究生。 73 74 75 76 77 78
93
译码电路 (MCU2) A15/P5.7 A14/P5.6 A13/P5.5 A12/P5.4 Al1/P5.3 A10/P5.2 A9/P5.1 A8/P5.0 C8051FO2X A7/P6.7 A6/P6.6 AS/P6.5 A4/P6.4 A3/P6.3 A2/P6.2 Al/P6.1 AO/P6.0 ALE/P4.5 P4.6 WR/P4.6D D7/P7.7 D6/P7.6 D5/P7.5 D4/P7.4 D3/P7.3 D2/P7.2 DI/P7.1 DO/P7.0 C C N N )) L L 4 3 L L L l l 2 l 0 L L A Alll 9 8
孔钆乩扎孔维普资讯 http://www.cqvip.com 2007年第2期 宋公明,等:应用于双高速单片机系统中的双端口RAM的设计 ・75・
2端口争用问题的分析
在双口RAM的应用中,通常有4种不同的争用
解决方案,它们分别是硬件判优方案、中断方案、令
牌传递方案和软件判优方案。该系统采用的是硬件判
优方案,双端口RAM中都有片内硬件判优电路,并且
两个端口上都有BUSY管脚。双端口RAM无竞争时
的读/写控制见表l。表l中,x表示无关,L表示
LOW,H表示HlGH。
表1双端口RAM无竞争时的读/写控制
左边或右边端口(地址不同) 功能 R/W CE 0E DO~D7 X H X 高阻 端口未选通,处于掉电保护方式 L L X DIN 端口上的数据写入存储单元 H L L Dou_r 存储单元的数据输出到端口 H L H 高阻 高阻状态
双端口RAM具有片内仲裁逻辑,用以解决当两
个口同时选通且要访问的单元地址相同时的竞争问 问(见表2),并使需延时处理的端口的标志信号
BUSY为低。当某一端口的BUSY标志为低时,对该端
口的任何操作都是无效的,在BUSY信号变高以后,才
允许对其进行操作。仲裁的方式有两种,即片选仲裁
和地址仲裁。
2.1 片选仲裁
这种情况发生在两端口的访问地址相同,并在CE
有效之前已先行有效,片内逻辑在CEL与CER之间判
断其先后顺序,以决定哪一边端口先进行访问,并使
另一边端口延时访问,使延时访问的端口的标志信号
BUSY为低。
2.2地址仲裁
如果两端口片选同时为低发生在地址相同之前,
片内逻辑要在地址有效的先后顺序中裁决,以确定地
址有效在先的端口先进行访问,同时使另一端口的标
题。在发生竞争时,片内仲裁逻辑决定哪一边先行访 志信号BUSY为低。
表2双端口RAM硬件判优时的内部仲裁逻辑功能表
左端口 右端口 标志 功能 CEL A0L~A12L CER A0R~A1啦 BUSYL BUSYR
H X H X H H 无竞争 仲裁方式 L 任意单元 H X H H 无竞争 H X L 任意单元 H H 无竞争
L ≠A0R~Al2R L ≠A0L~A12L H H 无竞争 ● L AL≥AR L AL≥AR H L 左端口先操作
地址仲裁(CE L AR≥AL L AR≥AL L H 右端口先操作 在地址相同 L 相同 L 相同 H L 仲裁解决 之前变低) L 相同 L 相同 L H 仲裁解决 CL≥CR A0R~A12R CL≥CR A0L~A12L H L 左端口先操作 片选仲裁(CE CR≥CL A0R~A1啦 CR≥CL A0L~A12L L H 右端口先操作 在有效之前 同时 A0R~Al啦 同时 A0L~A12L H L 仲裁解决 相同)
同时 A0R~Al啦 同时 A0L~A12L L H 仲裁解决
表2中,AL≥AR表示左端口地址有效,先于右 端口地址有效的时间≥5ns;AR≥AL表示右端口地 址有效,先于左端口地址有效的时间≥5ns;若相同表
示左、右端口地址在5ns之内相同;CL≥CR表示左片
............一● 一 选CEL为低,先于右片选CER为低的时间≥5ns;CR≥
CL表示右片选CER为低,先于左片选CEL为低的时
间≥5ns;若同时表示左、右片选CE相继为低的时间在
5ns之内。 3双口RAM通讯的程序实现
当高速单片机在读写双端口RAM时,首先通过
端口扫描,判断标志信号BUsY的电平情况,如果此时
端口的电平为高,表示该RAM单元空闲,则单片机执 行读写数据的操作;如果此时端口的数据为低,则表 示该RAM单元正被另一单片机操作,单片机暂时停
止执行读写数据的操作,等待标志信号BUSY的电平 变低时再读取该存储单元,从而避免双高速单片机发 生争用端口的情况。 读写双端口RAM程序代码如下: //=…一…一…一…一= //目标MCU:C8051F022 双端口RAM:IDT7005 //———————————————————————————————————————————————————— #include<C8051F020.h> #define uchar unsigned char #define DPRAM—DATA XBYTE E0x00ff3: sbit BUSY—R P1 7: uchar RD—DPRAM(void); void WR—DPRAM(uchar Buffer-DATA); //—————————————————————————————————————————————————— void main(voi
d)//主程序 维普资讯 http://www.cqvip.com ・76・ 机械工程与自动化 2007年第2期
{ …… ) //—————————————————————————————————————————————————— uehar RD-DPRAM(void)//读双口RAM子程序 {uehar Buffer—DATA; do . {Buffer—DATA—DPRAM—DATA;)//读双口RAM while(!BUSY—R) return(Bufier—DATA); ) //—————————————————————————————————————————————————— void WR—DPRAM(uehar Buffer—DATA)//写双口RAM子程 序 {do {DPRAM—DATA—Buffer—DATA;)//写双口RAM while(I BUSY—R) ) //=…一…一一一…一一 这样,通过对单片机端口操作和程序的配合,有 效地解决了常用单片机和双端口RAM的争用问题。 4结束语
本文介绍了一种在双高速单片机系统中的双口 RAM的工作原理,详细介绍了双口RAM与双高速 单片机的电路设计、端口争用问题分析及程序设计。在 系统中应用双口RAM技术,能有效地扩大系统中应
用程序的容量,解决了资源共享的问题。由此可将双 高速单片机明确分工,使得系统应用灵活、速度快,整
体性能优越。
参考文献: [1]潘琢金,施国君.C8051Fxxx高速SOC单片机原理与应 用[M].北京:北京航空航天大学出版社,2002. [2]胡俊,吴祖育,蔡建国.主从式数控系统中的数据通讯 [J].机床与液压,2000(1):32—33. [3]宋公明,周华,刘冲.基于双C8051F022的数控系统的硬 件设计[J].机电工程技术,2006,35(2):42—43.
Design of the Dual-ported RAM Applied to the Double
High-speed Microprocessors System
SONG Gong-ming,ZHOU Hua,LIU Chong
(Graduate School,China University of Geoseienees,Wuhan 430074,China) Abstract:The dual—ported RAM is a kind of special memory,and the bus data share between double high—speed microprocessors is carried out by using it.In this system,the dual—ported RAM is adopted to achieve the data share.Thereby tbc 。““-,unications and data transfers between double microprocessors can be achieyed. Key words:dual—ported RAM;the data share;communications ̄high—speed microprocessors