天津嘉宏自动化设备有限公司 | 黄泥灌浆站 | 煤矿注浆站 | 自动化制浆站 | 工业自动化控制系统

嘉宏自动化
联系我们

灌浆记录仪USB接口设计与开发

发布于:2018-09-10 13:18来源:www.tjzidonghua.com 作者:嘉宏自动化 点击:


  灌浆记录 仪以前经常采用并行接口和PC直插卡的方式,随着行业高速发发展,现如今都采用即插即用的UsB接口设计,使用起来方便,可靠。

  利用USB接口的灌浆记录 仪,使用起来比并行接口要简单,减少了故障率,一定程度上缩减了生产成本,维护起来方便。

  灌浆记录 仪USB接口的设计***

  通用串行总线(USB)是一种支持即插即用的新型串行接口,使外设到计算机的连接更加便利。这种接口适合于种设备,不仅具有快速、即插即用、支持热插拔的特点,还能同时连接多达127个设备,解决了如资源冲突、中断请求和直接数据通道等问题。因此,越来越多的***者欲在自己的产品中使用这种标准接口。RS232是单个设备接入计算机时常采用的一种接入方式,其硬件和软件协议比较简单,有很多传统设备采用了这种通信方式。将USB转UART技术应用于单片机与PC机之间的数据通信,在计算机上产生样使用USB口即可。这样仅能使单片机具备UsB通信的诸多优点,简化了USB编程,同时还可以利用USB对单片机提供5V的电源(500mA以下)。

  市场上USB接口芯片有很多种,例如FT245、CH375、CP2101等。CP2101其升***型号CP2102是一种高度集成的USθUART桥接器,该芯片是由美国 Silicom公司生产,集成度高,内置一个USB20全速功能控制器,USB收发器EEPROM,振荡器和带有全部的调制解调器控制信号的昇步串行数据总线(UART)。

  与其他的 USB-UART转接芯片工作原理相似,CP2101系列芯片是通过驱动程序将PC机的USB口虚拟成CC扩展的目的。虚拟COM口(VCP)器件驱动程序允许一个基于cP2101的器件以PC机的应用软件的形式作为一个增加coM口单***于任何现有的硬件。℃OM口使用运行在PC机上的应用软件以访问一个标准COM口的方式访问基于cP2101的器件但P℃与cP2101器件间的数据传输却是通过υsB完成的,因此仅需修改现有的软硬件的部分代码和电路就可以实现通过US日向基于cP2101的器件传输数据,无需全部重新设计。

  1.1cP2101的特性

  CP2101体积虽小但是功能非常强大,其主要的特性包括以下几点.

  1)集成的UsB收发器无需外部电阻;(2)集成的时钟无需外部振荡器;(3)集成的512字节 EEPROM用于存储产品生产商D产品D序列号电源参数版本号和产品说明;(4)片内上电复位电路;(5)片内电压调节器3.3V输出。

  此外,厂商以及销售商免費提供了适用于 Windows,LinuⅨx, Mac Os-X等多个操作系统的驱动程序,省去成并安好驱动程序即可以使用。

  1.2cP2101的原理和外围电

  由(图1)可以看到,用cP2101进行串口扩展所需的外部器件非常少,使用方便。CP2101是US時串行口桥接器它需要设计外接USB接口电路和RS232接口电口电路实现CP2101与计算机之间的通信;RS232接口电路实现CP2101和外设之间的通信(电路如图1示)。其中RS232电平转换电路可根据需要选用MAX3243或MAX232。

  当CP2101转换器与主机连接后,须根据操怍系统选择相对应的虚拟串行口驱动程序。不必修改设备的应用程序就像存取一个标准的物理串口一样访问该虚拟串口,端口设备会产生“cP210 x USB to UARTBridgeController(c○Mκ)"的新端口(*随计算机的配置而昇),此时说明驱动程序安装成功。实质上,所有针对虚拟串口的数据通信都足以USB总线传输实现的,但在设备上,收发则是RS232数据。

  2.1MsComm控件的实际应用

  前面已经阐述了CP2101的准备工作,下面就来说明如何利用 MsComm控件来和cP2101进行通讯。笔者以灌浆记录仁的实验程序为例,而这也是***的目的。***先在Deph中新建一个工程,在新建工程的窗体中加入 MsComm、Edt、Button、 Label、 ComboBox等控件。

  根据需要调整好各个控件的属性和位置。在窗体创建时设置串口通信的有关参数,部分代码如下:

  combobox1 Items. Add(com2);

  combobox1 Items. Add(com4);在 combobox1中添加备选的com2和com4

  mbobox2 tems Add(9600,n,8,1);/在 combobox2中添加备选的通信参数

  MSComm1 nputLen:=0; //Input读取整个缓冲区的内容 MSComm1 THreshold:=1;∥每次接收到字符即产

  MSComm1 outBuffercount:=0;M清空发送缓冲区

  MSCommlInBuffersize:=1024;/设置接收缓冲区大小为1024字节

  MSComm1. OutBuffersize:=1024;h设置发送缓冲区大小为1024字节

  nlnputModeBinary;灬心二进制形势取回数据

  设置好通信参数灿以后,在打开串口的 On clicκ事件下需添加打开串口代码为通讯做好准备,部分代码如下

  MSComm1 Settings: =combobox Text

  if combobox Text=com2 then

  MSComm1 CommPort: =2

  MSComm1 CommPort:=4;∥假设只考虑com2和com4两种情况

  MSComm1 Portopen:=true;∥打开串口

  MSComm1 DTREnable:=true;∥/数据终端准备好

  MSComm1 RTSEnable:=true;/请求发送

  同样,在采集结束后关闭程序时也应关闭串口,采用打开动作相反的代码来实

  MSComm1 Portopen:=fase;/关闭串口

  MSComm1. DTREnable: =false

  MSComm1. RTSEnable: =false

  根据记录 仪的通信协议,上位机每发送一条采集命令到记录 仪,记录 仪便返回一组

  发 Oncomm事件,从接收数据缓冲区读取数据

  以及后续复杂的数据处理过程都应写到 On comm事件下,部分代码如下

  if MSComm. CommEvent=2 then

  recto:= MSComm Input;∥读取数据缓冲区内容

  end

------分隔线----------------------------
------分隔线----------------------------
销售咨询:
销售咨询:
技术支持:
售后服务: