积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> CPLD/FPGA >> 应用论文
  相关分类: 相关文章 | 应用论文 | 新产品 | 下载 |
计算机与CPLD串口通信
 
作者:广东工业大学 信息工程学院 吴海明 童怀   来源:《中国集成电路》    点击数:134   更新时间:2008-8-19
您可以添加到网摘 让更多人关注此文章:

    1 引言

1.1 上下位机定义

上位机是指人可以直接发出操控命令的计算机,一般是PC,屏幕上显示各种信号变化(液压,水位,温度等)。下位机是直接控制设备获取设备状况的计算机,一般是PLC/单片机之类的。上位机发出的命令首先给下位机,下位机再根据此命令解释成相应时序信号直接控制相应设备。下位机不时读取设备状态数据(一般模拟量),转化成数字信号反馈给上位机。简言之如此,真实情况千差万别不离其宗。上下位机都需要编程,都有专门的开发系统。

在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,也可以理解为主机和从机的关系,但上位机和下位机是可以转换的。

1.2 上位机软件介绍

Visual Basic(VB)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。

1.3 下位机硬件介绍

CPLD是Complex PLD的简称,顾名思义,其是一种较PLD为复杂的逻辑元件。CPLD是一种整合性较高的逻辑元件。由于具有高整合性的特点,故其有性能提升,可靠度增加,PCB面积减少及成本下降等优点。CPLD元件,基本上是由许多个逻辑方块(Logic Blocks)所组合而成的。而各个逻辑方块均相似于一个简单的PLD元件(如22V10)。逻辑方块间的相互关系则由可变成的连线架构,将整个逻辑电路合成而成。常见的CPLD元件有Altera公司的Max5000及Max7000系列。Cypress的Max340及Flash370系列等,一般来说,CPLD元件的逻辑门数约在1000~7000门之间。

1.4 两者间通信

串口叫做串行接口,现在的电脑一般有两个串行口:COM1和COM2。你到计算机后面能看到9针D形接口就是了,有时我们也称它为RS-232接口。现在有很多手机数据线或者物流接收器都采用COM口与计算机相连。

1.4.1 上位机部分

计算机串口的数据收发只需要RS-232的两条线:RXD和TXD就可以实现上下位机的通信。当上位机要发送数据时,object.Output=value。而上位机接收数据时,inbyte()=object.Input。其中inbyte()是定义为一个未知大小Byte类型,来存放接收到的以二进制方式存储的数据。所以,object.InputMode=comIn-putModeBinary(=1)。

1.4.2 下位机部分

若要下位机与上位机进行通信,那么下位机也应该与上位机一样具有收发这两条线RXD和TXD。值得注意的是:上位机的RXD与下位机的TXD连接,上位机的TXD与下位机的RXD连接,这样才达到两者间通信的可能。然而这样是不够的,下位机的主要芯片CPLD必须具备通用异步收发器(Universal Asynchronous Receiver Transmitter,UART)功能,按照收发的协议,例如:上下位机的波特率,校验位,数据位,停止位的数目要一致。

UART是一种应用广泛的短距离串行传输接口。常常用于短距离、低速、低成本的通信中。8250、8251、NS16450等芯片都是常见的UART器件。基本的UART通信只需要两条信号线(RXD、TXD)就可以完成数据的相互通信,接收与发送是全双工形式。TXD是UART的发送端,为输出;RXD是UART的接收端,为输入。

2 通信的实现

2.1 上位机软件功能

该软件的名字为test_UART,它具有收发数据的功能。与串口精灵相似,是串口精灵的简单版。其中:数据发送框里有一个组合框,可以选择0-9其中的一个数字,每个数字都代表不同的以十六进制的数据信息,然后点击“发送”按钮,数据就会通过串口发送到CPLD上,CPLD接收数据后通过数码管把它显示出来。另外,当CPLD有数据发送时,Test_UART会自动接收数据,在数据接收栏显示。

数据发送:选择“0”时:发送3FH。选择“1”时:发送06H。选择“2”时:发送5BH。选择“3”时:发送4FH。选择“4”时:发送66H。选择“5”时:发送6DH。选择“6”时:发送7DH。选择“7”时:发送07H。选择“8”时:发送7FH。选择“9”时:发送6FH。其他情况发送00H。Mcom.Output=[value]’例如IF Combol.Text=“0”Then Mcom.Output=&H3F数据接收代码如下

2.2 下位机设计与功能

整个硬件系统主要有CPLD芯片:XC95108-84-15C;12个按钮(4*3矩形键盘);1个LFD数码管,如图1所示。

2.2.1 顶层模块

其中,CPLD的顶层模块由波特率发生器、UART接收器、UART发送器、键盘输入器构成。UART发送器的用途是将准备输出的并行数据按照基本UART帧格式转为TXD信号串行输出。UART接收器接收RXD串行信号,并将其转化为并行数据。波特率发生器就是专门产生一个远远高于波特率的本地时钟信号对输入RXD不断采样,使接收器与发送器保持同步。键盘输入器是向计算机发送信息,其中*代表发送数据,#代表不发送数据。

2.2.2 波特率发生器

波特率发生器实际上就是一个分频器。可以根据给定的系统时钟频率(晶振时钟)和要求的波特率算出波特率分频因子,算出的波特率分频因子作为分频器的分频数。波特率分频因子可以根据不同的应用需要更改。例如给定的晶振为10MHz,要求通信波特率为9600B/S,所以分频系数约为1000。

2.2.3 UART接收器

状态机一共有4个状态:start(等待开始位)、rec_bit(按位接收数据)、rec_over(接收完毕)、seri-a12parallel(串转并)。Start状态:当UART接收器复位后,接收状态机将处于这一个状态。在此状态,状态机一直在等待RXD的电平跳转,这意味着新的一帧UART数据帧的开始,状态机将转入rec_bit状态。rec_bit状态:UART接收器内有一个接收缓冲区rbuf(7 downto 0)。在这状态下,rbuf(i)<=rxd,i=i+1(移位)。当i=8时,状态机将转入rec_over状态。rec_over状态:rbuf已接收PC发来的数据,Rx_over=1,Rx_complete=0,状态机将转入serial2parallel状态。Serial2parallel状态:Rx_over=0,Rx_complete=1,实现串行接收,并行发送的功能。把rbuf的8位数据并行输出,结果在数码管显示。

2.2.4 UART发送器

状态机一共有4个状态:start(开始发送位)、seri-al2parallel(并转串)、trans_bit(按位发送数据)、trans_complete(发送完毕)。

Start状态:当UART接收器复位后,接收状态机将处于这一个状态。在此状态,状态机一直在等待tx_control的电平为高电平状态机将转入trans_bit状态。Parallel2serial状态:当tx_control=1,开始发送数据,UART的发送缓冲器tbuf(7 downto 0)进入并转串的过程,并行输入,串行输出。通过TXD输出,把信息发送到PC机串口RXD上。Trans_bit状态:在这状态下,txd<=tbuf(i),i=i+1(移位)。当i=8时,状态机将转入trans_complete状态。Trans_com-plete状态:这状态告诉UART发送一个字节数据完毕,准备下一个字节的数据,状态回到start,如果tx_control为1则继续发送,否则停止发送。

3 程序仿真

3.1 UART发送器仿真

假设要发送数据A9H(tx_buf=”10101001”),由低位到高位10010101发送,仿真波形图如图2所示,tx相应地发送数据10010101。同样,发送FFH数据,tx相应地发送数据11111111。

3.2 UART接收器仿真

假设在软件Test_uart里选择“2”发送,对应发送5BH(01011011),南低位到高位发送顺序:11011010。仿真波形图如图3所示,若干时间段后,seg_D从00变成5B。而信号seg_D连接数码管,此时数码管显示“2”。

4 小结

设计完成后经编译仿真正确后,下载到CPLD板XC95128SLC84-15或FPGA板EPF10K10LC84-3。外接RS-232电平转换芯片MC1488,试验验证效果良好。在其它程序设计过程中该程序可以作为一个模块直接使用。另外,这原理可以运用在计算机控制直流电机,步进电机工作模式,例如正转,反转,加速,减速。



相关文章
· 基于MCU+CPLD的相位差和频率的测量方法研究及实现[182]
· CPLD在基于PCI总线的功率模块设计中的应用[204]
· 基于CPLD的电器定时开关控制系统设计[228]
· 基于单片机和CPLD的数字频率计的设计[166]
· 基于单片机和CPLD的数字频率计的设计[152]
热门评论排行
·VHDL设计中电路简化问题的
·ARM嵌入式系统基础教程(N
·江苏嵌入式Linux教育培训
·ARM处理器应用开发4步骤
·锐极LINUX驱动培训班定于

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
德州仪器推出四款最新配电开关
Altium设定全新三维PCB设计性
飞思卡尔进军上网本市场 推
08年11月实际芯片销售额创新低
节能环保备受关注 半导体照
半导体产业最终将存活并将再次蓬勃发展
电子元件业御寒过冬 静待行
台湾当局拨款60亿美元援助DRAM厂
Vishay Silico
严冬期如何发展半导体业 扩
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
供应HY5PS561621AF...
优势供应SPP11N80C3...
优势供应ICE2A0565Z...
低价专业PCB打样 双面板20...
深圳市天漠科技超低价供应atm...
深圳市天漠科技超低价供应ARM...
[推荐]2.5米精度,高灵敏度...
830实验箱+电脑没有并口...
[原创]平望科技助力自服终端国...
低价专业PCB打样 双面板20...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网