碧波液压网 欢迎你,游客。 登录 注册

基于VB与C51串行通信协议的设计与实现

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  1 引言

  串行通信是计算机之间较常用的通信手段之一,在工业控制中,经常要将带有rs232总线接口的仪器作为i/o接口设备,通过rs232串行总线与pc计算机组成一整套仪器系统。

  单片机c语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。

  本文通过制定串行通信协议,上位机采用vb语言,单片机用c语言编程来实现计算机与单片机之间的串行通信,这对功能复杂的通信,采用串口通信协议将使数据传送准确可靠。

  2 通信协议及程序设计思想

  pc机与单片机之间的通信是通过串行口实现的,由于单片机系统电平是ttl电平,与标准rs232不兼容,本实验通过max232将ttl电平转换为 rs232标准,再与pc机的串口连接。为使数据在链路上无差错的传送,并实现不同的功能,本文采用通信协议来规约数据的传输。本文采用的通信协议如下:

  (1) 通信参数设定:

  波特率9600,无奇偶校验,8个数据位,1个停止位。

  (2) 命令帧格式:

  1byte 1byte 2byte 1byte

  起始标志 功能码 参数 校验和命令帧起始标志为63h。

  功能码:命令帧中的功能码代表不同的命令,例如,当功能码取50h时为上位机读数据命令,下位机接到此命令后把数据传给上位机;当功能码取60h时为上位机写数据命令。命令帧的第三个段为命令参数,是传输命令时的附加信息,如果命令不需要附加信息时,可以将它置为0即可,但有些命令需要进一步的信息,例如,当功能码取52h时帧表示错误命令,这时就可以用命令帧的参数段来表示错误的原因或类型。这种命令帧格式可以保证很大的扩展性和灵活性。

  在命令帧和数据帧中都设置了一个字节的校验码,可以确保帧在传输过程中没有错误,这里采用比较容易实现的和校验方式.

  (3) 数据帧格式:

  1byte 2byte 10byte 1byte

  起始标志 序号 数据块 校验和

  其中数据帧起始标志为64h,序号是当多帧数据要发送时所规定的发送顺序号。数据块为所要传输的内容。

  上位机(pc机)作为主机控制通信的进行,下位机(单片机)作为从机中断响应上位机的通信要求,进入中断服务程序,进行相应的操作。

  3 vb中的串行通信机制及其在上位机通信中的实现

  vb6中有一个专门用来串行通信的控件-mscomm控件。在vb6中选择“工程/部件”菜单项,在“控件”对话框选中“microsoft comm.control 6.0”,单击“确定”即可添加mscomm控件,然后在窗体中依次布置如下控件并正确设置其属性:3个commandbutton按钮,两个 textbox文本框,一个定时器timer1。其中text1显示的是pc机接收单片机发送的数据,text2显示的是pc机发往单片机的数据。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论