指环厂家
免费服务热线

Free service

hotline

010-00000000
指环厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

8位单片机的16位外部总线扩展与应用

发布时间:2020-07-21 19:27:07 阅读: 来源:指环厂家

随着电子设计技术的进步和芯片制造工艺水平的提高,16位和32位单片机的使用越来越广泛,但是8位单片机因其制造工艺成熟、价格低廉等特点,仍然在市场上占有相当大的比例,尤其在成本敏感和可靠性要求极高的汽车电子领域,更占用绝对优势,带有外部总线的8位单片机,可以方便地与8位总线设备(如a/d、ram和can总线)相连。随着对传输性能要求的提高,出现了大量的16位总线设备(如网络接口芯片),8位单片机要与16位总线设备相连接,通常的做法是利用i/o端口来模拟16位总线的读/写时序,数据传输速率较低,且原有的8位设备的传输速率也随之降低,因而限制了8位单片机的使用范围,本文提出一种8位单片机扩展16为外部总线的方法,不影响原有8位器件的前提下,可实现对16位总线设备的高速存取;最后,介绍了如何利用该方法与ide硬盘相连接,并应用于车载数据采集系统。 1 8位/16位总线时序分析

本文引用地址: 1.1 8位单片机总线时序

带有外部总线的8位单片机有很多,如51系列,avr系列等,本文以w77e58为例,w77e58是winbond公司推出的增强型51单片机,工作时钟最高为40m赫兹,在同样的时钟频率下,w77e58指令速度是传统51单片机的3倍;另外,w77e58对程序存储器和数据存储器的寻址能力都为64kb。图1中上半部分为读时序,下半部分为写时序。

以读数据为例,p0、p2口输出当前地址,ale的下降沿锁存低8位地址,高8位保持不变;而后,读信号rd使能(低电平),外部设备把数据送到p0口,rd的上升沿把数据读入单片机。写数据与此类似,不过数据方向相反,同时为保证数据能够正确写入外部设备,单片机在写信号wr使能前把数据送到p0口,wr无效后须保持一定时间,从图1中可以看出,单片机用p0口存取8位数据,p2口仅用于地址输出。

1.2 ide硬盘总线时序

下面以ide硬盘为例来分析16位总线时序,图2是ide硬盘的接口示意图[1],只标出了与总线有关的信号线:dior/diow,读/写;dcs0/dcs1,片选;dd0-dd15,16位数据线;da0-da2,3位地址线。

ide硬盘是典型的16位总线设备。ide接口有两个片选信号,dcs1用来寻址控制寄存器。默认状态下即可对ide硬盘进行存取操作,故一般把该信号线直接连到高电平而只使用dcs0。其时序如图3所示。

读/写周期开始时dior和diow均处于无效状态,da0-da2连接到主机(在这里为单片机)的地址输出。在收到读请求(dior使能)后把数据送至数据线上,主机利用dior的上升沿锁存该数据;之后,硬盘控制器延时后释放数据线,在接收写请求时(diow使能),则让数据线处于三态(tri-state),等待主机输出数据,最后在diow的上升沿把数据写入硬盘控制器,在diow上升沿之前,主机需把数据准备好。

对比图1和图3可知,总线时序基本一致,只是在数据线上传输的数据位数不同,但是,主机一条指令完成一个读/写周期,从外部设备到主机的16位数据在指令完成后不再有效;而从主机到外部设备的数据必须在指令完成前准备好,因而要把8位总线扩展成16位总线,必须要同时考虑读/写时数据的锁存问题。

2 16位总线扩展的实现

根据前面对总线时序的分析,采用如图4所示的方法对8位总线进行扩展,使其满足16位总线读/写。主要由以下两部分组成:1片gal16v8(u5),实现片选信号的译码和其他信号的编码;2片74hc573(u3、u4),实现高8位数据锁存。cs1-cs4是a9-a15的译码输出,可连接4个外部设备。地址范围根据具体设备来设定,假设cs2上连接有16位总线设备:

这里“&”表示“与”,“!”表示“非”,即rd和cs5同时有效时,le5有效;wr和cs6同时有效时,le6有效。注意:cs5和cs6有一部分地址空间与cs2重合,即选通cs2的同时,也同时会选通cs5或cs6。另外,通过外部设备地址线的连接,使得8000h-81ffh和8200h-83ffh寻址同一个位置,以图2中的ide硬盘为例,da0->a0,da1->a1,da2->a2。

单片机写16位数据时,执行写操作使cs6有效(寻址fe00h-ffffh),输出高8位数据并锁存到u4,然后执行写操作使cs2有效(寻址8200h-83ffh),p0口上的数据和u4锁存的数据同步输出,形成16位数据d0-d15,从而写入外部设备。

单片机读16位数据时,执行读操作使cs2有效(寻址8000h-81ffh),外部设备的低8位送至p0口,而高8位同时被u3锁存,然后执行读操作使cs5有效(寻址fc00h-fdffh),u3锁存的数据被送至p0口。

在上面的读/写过程中,虽然对cs2的寻址位置不同(读为8000h-81ffh,写为8200h-83ffh),但由于位置重合,故可对16位外部设备正确读/写。另外,如下单片机寻址连接到cs1、cs3、cs4上的8位设备,则由于u3和u4没有选通,对其操作没有任何影响。

从上面的实现可以看出,扩展后的16位外部总线与外部设备进行数据交互时只增加一条指令。本方法与常规的端口模拟方法的比较结果如表1所列。从表中可以看出,采用本方法后,传输速率是常规方法的3倍。

另外,上述扩展方法还可以进一步引申:1)若有未使用的i/o口(如w77e58的p1口),则可用来直接输出高8位数据,从而可以去掉图4中的u4;2)若对成本不太敏感,则可把图4中的逻辑器件用cpld实现,从而使设计更为灵活,布线更为方便,结构更为紧凑,基本实现原理仍然如图4所示。

3 在车载数据采集系统中的应用

8位单片机扩展16位外部总线的方法已应用于车载数据采集系统,图5为该系统的原理框图。汽车厂商在开发新车型或者关键零部件升级时,必须经过样品试制、产品鉴定、小批试制和大批生产等必要阶段。每个阶段中,都伴随着大量的可靠性试验,车载数据采集系统正是为这些试验而设计的。鉴于其特殊的使用条件,必须满足如下基本要求:能够进行连续、长时间数据采集、时间有可能是几天或者一个月;因为有可能很多台车辆的试验同时进行,因而要求系统成本低且安全可靠,具有can总线数据采集接口。在图5中,8位单片机上挂有3个8位总线器件(usb slave器件,ram和can总线器件)和1个16位总线接口设备(ide硬盘)。

单片机采用前面提到的w77e58;为保证较高的数据传输速率,便于与外部串口设备(lcm显示屏)通信,外部晶振频率使用33m赫兹。

usb slave器件采用pdiusbd12,使用模块化的方法实现一个usb接口,本次设计通过该器件把ide硬盘映射成一个可移动硬盘,从而实现了大容量存储类(massstorage class)。

ram采用hy62wt08081e。该器件提供32kb的数据空间,用于数据采集以及fat32文件系统操作的缓存。

can总线接口器件采用sja1000+tle6250的组合,sja1000是独立的can控制器,用于汽车和工业环境中的控制器局域网络,tle6250是针对汽车环境设计的can收发器。

ide硬盘使用经过防震处理的工业用硬盘,也可使用cf卡加ide转接线的方式。

图6为车载数据采集系统的简要软件流程图。考虑到usb端口和can总线上的数据一般不会同时向系统发出请求,故软件采用查询方式工作,主要包括以下几部分:主流程、usb协议实现[2]、can总线数据[3]和其他车辆状态信号采集,以及fat32协议实现。

4 小结

本设计在8位单片机上实现了16位外部总线,可对16位设备进行高速存取,并且保留了原8位总线的功能,这种8位/16位总线共存的方式,较之端口模拟总线方式,极大地提高了数据的传输速率,该16位总线扩展方式已成功应用于车载数据采集系统,在汽车的道路可靠性试验中,安装了多套该系统,试验结果表明,该系统使用方便,工作稳定、可靠,数据传输率高、完全满足汽车动态采集数据的需要,该16位总线的扩展方式,可应用于具有8位外部总线的单片机,在一定程度上,扩大了该类单片机的使用范围。

贵阳牙齿矫正价格

热玛吉

武汉植发医院

昆明牙齿矫正