0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于SX52BD单片机实现接口通信系统的设计

电子设计 来源:单片机与嵌入式系统应用 作者:易韦韦 2021-05-05 17:26 次阅读

引言

扩展能力端口模式ECP(Extented Capability Port)是一种IEEE 1284标准的工作模式之一。它能实现双向数据传输,具有DMA传输、数据RLE压缩、双向寻址等功能。它要求主机外设双方的硬件都必须实现状态机的功能,即自动产生各种控制信号。ECP模式是唯一定义了寄存器实现的IEEE 1284传输协议。在计算机端操作ECP并行协议,仅需对相应的寄存器进行读写就会触发硬件完成各种时序。ECP模式的数据传输率可以达到 2~4MB/s。

SX52BD是SX系列产品,是采用CMOS工艺制造的、可配置的通信控制器。它是一种高速单片机,指令大都是单周期的,其工作频率可达到50MHz。由于其特有速度,设备可实现虚拟外设(软件代替硬件的功能)。本文讲述的通信就是基于此完成的。

1 ECP协议

ECP传输通过标准并行端口实现。其DB25接口的引脚定义如下:

1—HostClk; 2~9—双向D1~D8;

10—PeriphClk; 11—PeriphAck;

12—nAckReverse; 13—Xflag;

14—HostAck; 15—nPeriphRequest;

16—nReverseRequest; 17—IEEE1284Active;

18~25—各信号地。

ECP模式分以下8个操作阶段。

o4YBAGCH2TaADWlbAADmhM_U-jE173.png

① 模式商议阶段。主机把ECP的能力请求值放到数据总线上,然后置IEEE 1284 Active为高,HostAck为低。外设应该置PeriphClk为低,nPeriphRequest为高,Xflag为高,nAckReverse 为高。主机置HostClk为低,然后置HostClk和HostAck为高,表示已经确认了一个兼容于ECP模式的外设。接着,外设置 nAckReverse为低,PeriphAck为低,Xflag为高,PeriphClk为高。接口进入设置阶段。

②ECP设置阶段。主机置HostAck为低,外设置nAckReverse为高,响应主机。接口进入正向空闲阶段,可以开始传输数据。

③正向空闲阶段。外设置PeriphAck为低,主机检测到此信号可开始传输数据。

④ECP正向传输阶段。主机将数据放到数据总线上,置HostClk为低。外设置PeriphAck为高,应答。主机置HostClk为高,外设接收数据并置PeriphAck为低,完成这次传输。

这种握手方式即互锁握手(interlocked handshake)。互锁握手是指每一个控制信号的跳变都由接口对方相互应答。使用这种方式,外设可以控制传输的时间以满足它进行操作的需要。

⑤ECP正向到反向转换阶段。在正向空闲阶段,主机置8位数据总线为高阻状态,并设置HostAck为低。为等待最小建立时间后,置nReverseRequest为低。外设置nAckReverse为低应答,进入反应空闲阶段。

看上去相当复杂,但PC端操作却很简单,仅需对后面介绍的寄存器读写即可。单片机端略微复杂,但也只需对I/O口置位、复位、读取,编程并不难。

pIYBAGCH2S-AGE0YAACuRTImeJ4169.png

2 SX52BD单片机简介

SX52BD片内程序存储器容量为4096字节,数据存储器容量为262×8位。SX52BD具有5个8位I/O端口A、B、C、D、E,2个带8位预定标器的16位定时器,1个带预定标器通用8位定时器,1个模拟比较器,1个brownout检测器及看门狗定时器,1个内部RC振荡器。端口 A、B、C为双向I/O口;端口B可作为唤配置、比较器、定时器1的输入;端口C可作为定时器2的输入;端口D、E仅做输入用。

SX52BD有3种不同的寻址方式:间接寻址、直接寻址、半直接寻址。对寄存器寻址模式的选取依赖于指令中5位“fr”的值。

*间接模式:fr=00h

*直接模式:(fr bit 4=0)fr=01h~0Fh

*半直接模式:(fr bit 4=1)fr=10h~1Fh

由于SX52BD运行速度可达50MHz,由指令运行产生时序完全可达到ECP协议的时序时间要求,并且它的I/O口驱动能力满足PC机要求。因此,不用使用任何额外的硬件电路产生时序,这就是虚拟外设的概念。

3 ECP通信在SX52BD与PC机间的实现

由于采用了虚拟外设,因此硬件电路结构极其简单:将SX52BD单片机的25个双向I/O口接入PC机即可。

ECP通信的实现由软件完成。主机设置好BIOS后,可通过操作寄存器直接产生硬件所需时序。寄存器定义如表1。

表1 寄存器定义(基址0x378)

o4YBAGCH2QiAbwHVAAAvJTpTI8o239.png

其中状态寄存器dsr位定义如图1,控制寄存器dcr的位定义如图2。扩展控制寄存器ecr中定义了ECP对FIFO、DMA的使用,在速度要求较高时才对其操作。

下面列出了实现简单的ECP协议。图3为SX52BD端的程序流程图,图4为PC机端的程序流程图。

结语

总体来说,由于ECP协议功能完善而且实现简单,对时间要求也不是很严格,在许多传输速率要求不是特别高的场合中应用价值很高。另外,SX系列单片机的虚拟外设具有很广泛的应用。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6031

    文章

    44509

    浏览量

    632552
  • 控制器
    +关注

    关注

    112

    文章

    16167

    浏览量

    177293
  • 总线
    +关注

    关注

    10

    文章

    2863

    浏览量

    87967
收藏 人收藏

    评论

    相关推荐

    基于SX52BD单片机的嵌入式远程电网监测系统构建

      介绍应用UBICOM公司的SX52BD单片机构建用于远程电网监测的嵌入式系统的具体方案,使基于单片机的测控设备可
    发表于 11-30 10:47 1036次阅读
    基于<b class='flag-5'>SX52BD</b><b class='flag-5'>单片机</b>的嵌入式远程电网监测<b class='flag-5'>系统</b>构建

    基于SX52BD单片机和CS8900A控制器实现英特网终端的应用设计

    ·SX52BD是Ubicom公司生产的一款RISC指令集的高速单片机。程序存储器采用Flash,片内容量为4096字节,重复写周期1万次以上;数据存储器是SRAM,片内容量为262×8位
    的头像 发表于 06-14 14:48 2976次阅读
    基于<b class='flag-5'>SX52BD</b><b class='flag-5'>单片机</b>和CS8900A控制器<b class='flag-5'>实现</b>英特网终端的应用设计

    [原创]美国冬泽单片机

    POWER ELECTRONIC )企业集团的8位超高速单片机SX52BD,每秒运行数据能力达1亿次。由于UBICOM单片机的速度极高,能够实现实时多任务操作,可以在MCU执行数据采
    发表于 08-18 09:06

    基于SX52单片机测控网络系统研究

    应用UBICOM 公司的协议栈芯片SX52 实现数据从UDP 协议到UART 的转换, 使基于单片机的测控设备可以方便地连接到局域网中,并和远程网络设备进行数据通信。给出Intrane
    发表于 04-15 08:29 14次下载

    ECP协议及在SX52BD与PC通信实现

    介绍一种快速的并行协议—— ECP协议在高速单片机与PC通信的应用。高速单片机采用SX52BD, 并用虚拟外设
    发表于 04-16 09:38 24次下载

    基于SX52单片机测控网络系统研究

    应用UBICOM 公司的协议栈芯片SX52 实现数据从UDP 协议到UART 的转换, 使基于单片机的测控设备可以方便地连接到局域网中,并和远程网络设备进行数据通信。给出Intrane
    发表于 05-14 14:04 21次下载

    键盘接口单片机系统与PC通信中的应用

    摘要:提出一种全新的利用键盘接口实现单片机系统和PC通信的方案,介绍了键盘与PC
    发表于 09-14 22:13 55次下载

    传感器与AT89S52单片机接口电路设计:测量模块电路

    传感器与AT89S52单片机接口电路设计    该测试仪以AT89S52单片机为核心,外接温湿度传感器SHT
    发表于 05-13 11:50 4357次阅读
    传感器与AT89S<b class='flag-5'>52</b><b class='flag-5'>单片机</b>的<b class='flag-5'>接口</b>电路设计:测量模块电路

    89S52单片机检测控制温度的监测系统实现

    笔者运用D1S18B20采集数字信号,通过蓝牙无线通信技术和USB接口技术。实现由89S52单片机检测控制温度的监测
    发表于 01-09 10:07 4388次阅读
    89S<b class='flag-5'>52</b><b class='flag-5'>单片机</b>检测控制温度的监测<b class='flag-5'>系统</b><b class='flag-5'>实现</b>

    键盘接口单片机系统与PC通信中的应用

    本文提出一种全新的利用键盘接口实现单片机系统和PC通信的方案,介绍了键盘与PC
    发表于 03-29 10:18 6次下载

    基于单片机的嵌入式因特网终端设计方案

    主要芯片介绍 SX52BD是Ubicom公司生产的一款RISC指令集的高速单片机。程序存储器采用Flash,片内容量为4096字节,重复写周期1万次以上;数据存储器是SRAM,片内容量为2628位
    发表于 11-04 10:44 0次下载
    基于<b class='flag-5'>单片机</b>的嵌入式因特网终端设计方案

    AT89S52单片机系统教程之其它应用接口设计的资料说明

     本章介绍AT89S52单片机系统中其他的常用应用接口设计,内容主要包括单片机与步进电机、直流电机以及时钟/日历芯片DS1302的
    发表于 10-29 16:40 11次下载
    AT89S<b class='flag-5'>52</b><b class='flag-5'>单片机</b><b class='flag-5'>系统</b>教程之其它应用<b class='flag-5'>接口</b>设计的资料说明

    AT89C52单片机实现喇叭驱动的设计

    AT89C52单片机实现喇叭驱动的设计
    发表于 11-23 17:06 53次下载
    AT89C<b class='flag-5'>52</b><b class='flag-5'>单片机</b><b class='flag-5'>实现</b>喇叭驱动的设计

    PC与多台单片机实时通信系统的设计与实现

    电子发烧友网站提供《PC与多台单片机实时通信系统的设计与实现.doc》资料免费下载
    发表于 10-19 16:29 4次下载
    PC<b class='flag-5'>机</b>与多台<b class='flag-5'>单片机</b>实时<b class='flag-5'>通信</b><b class='flag-5'>系统</b>的设计与<b class='flag-5'>实现</b>

    如何实现51单片机与PC的串行通信

    51单片机与PC的串行通信是一种常见的通信方式,它允许单片机通过串行接口与PC
    的头像 发表于 10-21 11:35 328次阅读