PC机与CPLD通信问题的研究
发布时间:2008/5/27 0:00:00 访问次数:766
     来源:《单片机与嵌入式系统应用》
     摘要:根据pc机作上位机和下位机的cpld串行通信的特点,简介上位机vb程序的编写;详述在eda软件maxplusii的环境下,利用ahdl语言,编写下位机程序。此设计具有波特率高、传输准确等优点,并下载到芯片通过硬件试验验证。
    
    
     关键词:串行通信
     可编程逻辑器件 vb语言
     引言
     用cpld(复杂可编程逻辑器件)设计乃至仿真、验证、利用isp(在系统可编程)对硬件调试都非常方便,所以开发周期很短,且i/o口随意设定,故用cpld设计专用芯片是大势所趋。vb是一种面向对象的高级语言,应用这的通信控件编写上位机的通信程序十分方便,过程简单。本文针对cpld和pc通信的特点,各编写了上位机和下位机的程序,进行相对高速的串行通信。
     1 上位机和下位机通信特点简介
     根据串行通信的协议,发送串行数据一般是:1个起始位、n个数据位,1个或多个停止位。这样,发送起始位以后表明传输开始。传送与接收的双方设定好同样的传输位数,直到n个数据位送完以后,送停止位。上位机和下位机的电平标准不同,它们通过rs-232电平标准转换,在两者之间接入rs-232电平转换芯片即可。上位机和下位机的传输是异步传输,这样就需要有一个参考脉冲代表传输速度即波特率。通信双方取得一样的通信速度bps,指的是每一秒钟所传送的位数。现在仪器和工业场合,一般9
     600 bps是最常见的速度,而现在个人计算机pc所提供的串行速度可
     115 200bps(甚至921 600 bps)。因为常用的单片机mcu的软件是过程语言,以其作为下位机,无法提供这么高的波特率,即使是较低的波特率也可能产生误差。所以在传输距离较近而设备也可提供时,使用最高的传输速度也可以。cpld的软件是非过程语言,也就是说其逻辑段定义的所有动作是同时进行的而不是串行的,所以完全可以提供这样的高速下位机uart(universal
     asynchronous receiver transmitter)。
    
     2 上位机vb程序
     上位机软件利用vb6编写。微软的visual
     basic语言有极其友好的界面,深受广大编程人员的好评。其可视化特点得到了很好的发挥,其中的mscomm控件非常方便编写软件,将最低层的部分隐蔽,只要了解自己需要的参数即可顺序编写上位机软件。现在简介该控件的各项参数:
     commport——指定串行口;
     portopen——串口是否打开;
     input——输入寄存器;
     output——输出寄存器;
     inbuffersize——输入缓冲区大小;
     outbuffersize——输出缓冲区大小;
     inputlen——一次由串行端口读入字符串长度或字节个数;
     settings——设备波特率、传输数据位、校验位、停止位;
     inputmode——输入的是数据类型(文字形式或是二进制形式)。
     上位机程序要和下位机配合起来。主要须考虑的问题是波特率、输入输出数据类型。对于从下位机到上位机输出数据的情况,可作以下处理(反之类似):
     settings 115200,n,8,1(波特率115 200bps,校验位默认,8位数据位,1个停止位)
     对于上位机,将输入的数据以二进制数形式获取要通过以下的转换:
     dim data() as byte
     private sub timer1_timer()
     data()=mscomm1.input
     for i=lbound(data)to ubound(data)
    
     来源:《单片机与嵌入式系统应用》
     摘要:根据pc机作上位机和下位机的cpld串行通信的特点,简介上位机vb程序的编写;详述在eda软件maxplusii的环境下,利用ahdl语言,编写下位机程序。此设计具有波特率高、传输准确等优点,并下载到芯片通过硬件试验验证。
    
    
     关键词:串行通信
     可编程逻辑器件 vb语言
     引言
     用cpld(复杂可编程逻辑器件)设计乃至仿真、验证、利用isp(在系统可编程)对硬件调试都非常方便,所以开发周期很短,且i/o口随意设定,故用cpld设计专用芯片是大势所趋。vb是一种面向对象的高级语言,应用这的通信控件编写上位机的通信程序十分方便,过程简单。本文针对cpld和pc通信的特点,各编写了上位机和下位机的程序,进行相对高速的串行通信。
     1 上位机和下位机通信特点简介
     根据串行通信的协议,发送串行数据一般是:1个起始位、n个数据位,1个或多个停止位。这样,发送起始位以后表明传输开始。传送与接收的双方设定好同样的传输位数,直到n个数据位送完以后,送停止位。上位机和下位机的电平标准不同,它们通过rs-232电平标准转换,在两者之间接入rs-232电平转换芯片即可。上位机和下位机的传输是异步传输,这样就需要有一个参考脉冲代表传输速度即波特率。通信双方取得一样的通信速度bps,指的是每一秒钟所传送的位数。现在仪器和工业场合,一般9
     600 bps是最常见的速度,而现在个人计算机pc所提供的串行速度可
     115 200bps(甚至921 600 bps)。因为常用的单片机mcu的软件是过程语言,以其作为下位机,无法提供这么高的波特率,即使是较低的波特率也可能产生误差。所以在传输距离较近而设备也可提供时,使用最高的传输速度也可以。cpld的软件是非过程语言,也就是说其逻辑段定义的所有动作是同时进行的而不是串行的,所以完全可以提供这样的高速下位机uart(universal
     asynchronous receiver transmitter)。
    
     2 上位机vb程序
     上位机软件利用vb6编写。微软的visual
     basic语言有极其友好的界面,深受广大编程人员的好评。其可视化特点得到了很好的发挥,其中的mscomm控件非常方便编写软件,将最低层的部分隐蔽,只要了解自己需要的参数即可顺序编写上位机软件。现在简介该控件的各项参数:
     commport——指定串行口;
     portopen——串口是否打开;
     input——输入寄存器;
     output——输出寄存器;
     inbuffersize——输入缓冲区大小;
     outbuffersize——输出缓冲区大小;
     inputlen——一次由串行端口读入字符串长度或字节个数;
     settings——设备波特率、传输数据位、校验位、停止位;
     inputmode——输入的是数据类型(文字形式或是二进制形式)。
     上位机程序要和下位机配合起来。主要须考虑的问题是波特率、输入输出数据类型。对于从下位机到上位机输出数据的情况,可作以下处理(反之类似):
     settings 115200,n,8,1(波特率115 200bps,校验位默认,8位数据位,1个停止位)
     对于上位机,将输入的数据以二进制数形式获取要通过以下的转换:
     dim data() as byte
     private sub timer1_timer()
     data()=mscomm1.input
     for i=lbound(data)to ubound(data)
    
热门点击
- PC机与CPLD通信问题的研究
- 使用自举积分电路的精密电流源设计
- 基于Virtex系列FPGA的可编程嵌入式信
- SoC设计方法学(二)
- 光纤自愈环网在变电站自动化系统中的设计与实现
- FPGA基互联网系统的设计
- 通信系统过电压产生的原因与防护
- 可编程时钟发生器及其应用
- 网络开关盒电路
推荐技术资料
- 泰克新发布的DSA830
- 泰克新发布的DSA8300在一台仪器中同时实现时域和频域分析,DS... [详细]