基于PC实现的USB接口扩展板.docx

上传人:b****6 文档编号:13531345 上传时间:2023-06-15 格式:DOCX 页数:55 大小:367.31KB
下载 相关 举报
基于PC实现的USB接口扩展板.docx_第1页
第1页 / 共55页
基于PC实现的USB接口扩展板.docx_第2页
第2页 / 共55页
基于PC实现的USB接口扩展板.docx_第3页
第3页 / 共55页
基于PC实现的USB接口扩展板.docx_第4页
第4页 / 共55页
基于PC实现的USB接口扩展板.docx_第5页
第5页 / 共55页
基于PC实现的USB接口扩展板.docx_第6页
第6页 / 共55页
基于PC实现的USB接口扩展板.docx_第7页
第7页 / 共55页
基于PC实现的USB接口扩展板.docx_第8页
第8页 / 共55页
基于PC实现的USB接口扩展板.docx_第9页
第9页 / 共55页
基于PC实现的USB接口扩展板.docx_第10页
第10页 / 共55页
基于PC实现的USB接口扩展板.docx_第11页
第11页 / 共55页
基于PC实现的USB接口扩展板.docx_第12页
第12页 / 共55页
基于PC实现的USB接口扩展板.docx_第13页
第13页 / 共55页
基于PC实现的USB接口扩展板.docx_第14页
第14页 / 共55页
基于PC实现的USB接口扩展板.docx_第15页
第15页 / 共55页
基于PC实现的USB接口扩展板.docx_第16页
第16页 / 共55页
基于PC实现的USB接口扩展板.docx_第17页
第17页 / 共55页
基于PC实现的USB接口扩展板.docx_第18页
第18页 / 共55页
基于PC实现的USB接口扩展板.docx_第19页
第19页 / 共55页
基于PC实现的USB接口扩展板.docx_第20页
第20页 / 共55页
亲,该文档总共55页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于PC实现的USB接口扩展板.docx

《基于PC实现的USB接口扩展板.docx》由会员分享,可在线阅读,更多相关《基于PC实现的USB接口扩展板.docx(55页珍藏版)》请在冰点文库上搜索。

基于PC实现的USB接口扩展板.docx

基于PC实现的USB接口扩展板

摘要

单片机自20世纪70年代问世以来,以其极高的性价比,受到人们的重视和关注,应用很广,发展很快。

单片机体积小,重量轻,抗干扰能力强,环境要求不高,价格低廉,可靠性高,灵活性好,开发较为容易。

由于具有上述优点,在我国,单片机已广泛地应用于各个领域。

本课题设计为以单片机为核心的扩展板按照为实验室现有的控制理论实验箱配套来确定功能和技术指标,设计中需要的技术数据从计算机控制技术实验指导书和实验箱相关资料获得。

本课题设计一个USB接口的计算机功能扩展板,实现基于PC机的。

用于计算机控制技术实验中对控制算法的研究。

扩展板是一个单片机系统,具有多路模拟量输入输出功能,少量开关量输入输出的能力。

扩展板使用AT89S52单片机作控制核心,通过与上位机(PC机)通信,根据上位机传来的指令设置输出,把检测到的数据送到上位机。

扩展板本身不处理数据,完全听命于上位机工作。

本课题设计实现这个功能扩展板。

关键词:

单片机;AT89S52;虚拟测控系统;USB接口

 

Abstract

 

Sincethe20thcentury1970s,EMCUwithitsCost-effectivehasearnedthepeople'sattentionandconcern,whichhasappliedverybroadlyanddevelopedveryquickly.EMCUissmallsize,lightweight,anti-interferencecapabilityandtheenvironmentrequestisnothigh,lowprice,highreliability,flexibility,anditsdevelopmentiseasier.

Thistopicdesignforexpandstheexhibitionboardtakethemonolithicintegratedcircuitasthecoreaccordingtoformacompletesetforthelaboratoryexistingcontroltheoryexperimentboxdeterminedthefunctionandthetechnicalspecification,inthedesignneedtheengineeringdatainstructsthebookandtheexperimentboxcorrelationdatafromthecomputercontroltechnologyexperimentobtains.

ThetopicstodesignacomputerUSBinterfaceextensionsboard,andPC-basedvirtualmonitoringsystem.Controltechnologiesforthecomputercontrolalgorithmsintheexperimentalstudy.Expansionplateisamicrocontrollersystem,withmulti-channelanaloginputandoutputfunctions,asmallamountofswitchingofinputandoutputcapacity.ExpansionboardsforcontroloftheuseofAT89S52EMCUcore,throughtheUSBbusandthehostcomputer(PCmachine)communications,accordingtocommandsfromthetopoftheoutputsettotestthedatatothePC.Expansionboardisnotdealtwithdataitself,insteadcompletelytakeordersfromthePC.Thisissuefeaturesdesignedtoachievethisexpansionboard.

Keywords:

EMCU;AT89S52;virtualmonitoringsystem;USBinterface

 

目录

摘要I

AbstractII

目录1

1绪论3

1.1前言3

1.2选择本课题的目的及意义4

1.3系统设计方法4

2软件设计5

2.1设计流程5

2.2主程序流程图6

2.3模拟量输入检测模块9

2.4A/D转换模块9

2.5D/A转换模块10

2.6开关量输入输出模块10

2.7通信模块10

2.8逻辑电路的实现14

3系统的硬件设计15

3.1虚拟测控接口板技术说明15

3.2设计中单片机的选型15

3.3AT89S51型单片机的引脚功能16

3.4设计中采用的可编程逻辑器件19

3.4.1EPM7032可编程逻辑器件的结构19

3.4.2EPM7032器件的性能特点20

3.5通讯系统21

3.5.1CH375芯片21

3.5.2CH375内部结构24

3.5.3CH375与单片机的连接25

3.6模拟量输入通道的设计27

3.7模拟量输出通道的设计29

3.8开关量输入输出通道设计30

4虚拟测控系统PID实验32

4.1PID控制概述32

4.2数字PID控制实验内容32

4.2.1系统结构32

4.2.2PI调节及PID调节器的增益33

结论35

致谢36

参考文献37

附录38

附录A科技文章摘译40

 

1绪论

1.1前言

在科学技术发展史上,科学实验的出现是一个重要分水岭。

自从出现科学实验以后,科学技术以神奇般的速度向前发展,在欧洲是如此,在中国也是如此。

为了降低科学实验中的风险性,不至于浪费大量的人力物力,同时也是为了提高实验效率,实验者选择采用部分虚拟实验来代替实际实验。

计算机的诞生和相关技术的发展为这类虚拟实验提供了更为广阔的空间,因此可以说虚拟实验的出现本身是与现代利一学技术的发展相一致的。

在教育领域中使用虚拟实验系统辅助实验教学,是实验教学改革发展的需要,原因是:

实验教学是把理论知识和实践活动、间接经验与直接经验、抽象与形象相结合的教学过程,相对于理论教学更具有直观性、实践性、科研性、综合性.少创新性等特点,决定了它在育人方面尤其是在学生能力培养和综合素质提高方面有其独特的作用。

但由于受传统教育观念的影响,实验教学中还存在着不少令人担忧的问题(如:

实验室硬件建设的资金投入相对不足、仪器设备更新率低、实验方式单一等)。

而虚拟现实技术及相关技术的发展水平已使虚拟实验室可以胜任对真实实验室的模拟。

虚拟实验系统通过计算机把教学内容、实验设备、教师指导、学生生操作等有机地融合为一体,不仅可以部分代替实际实验(如一些实验室没有条件添置的仪器设备的操作、现实中可能会危及人体安全的实验、实验时间持续得很长以致无法开设的实验等),而且在实际实验前和实验后都发挥着积极的作用:

在实际实验前利用虚拟实验进行预习,有助于学生对实验的整体到局部建立起直观的感性认识,能有效地克服在实际实验中出现的盲目操作和实验“走过场”现象,缩短了实际实验的时间。

对一些难度少的、操作步骤多的实验,在做完实际的实验后再做虚拟实验,可以使学生了解侮一实验步骤在实验过程中所起的作用。

进一步理解实验原理、消化实验内容。

虽然虚拟实验系统在实验教学中发挥着重要的作用,但是人们普遍认为虚拟实验并不能取代真实实验,因为虚拟实验不能提供近乎真实的体感,以致使用者无法得到真实实验中所获得的全部经验(如动手能力的某些细节)。

即便如此,我们也应该看到,借助虚拟实验系统有助于丰富学生相关领域的认识和部分经验,虚拟试验的存在又是有着特殊的意义的。

 

1.2选择本课题的目的及意义

自动化实验室的控制理论实验箱购于八年前,由于实验箱上的接口板及实验软件设计不够成熟,经常出现死机,检测数据波动大甚至出现紊乱;由于设计中没有考虑对接错线的保护,所以经常烧坏接口板上的器件。

该实验设备对每个实验单独设计软件,实验简单但不利于学生了解测试方法和过程,不利于提高实践能力。

另外,由于生产厂已解散多年,已无法升级换代,也没有充足资金购买新设备。

研制自己的升级换代产品是非常必要的,也是可行的。

本课题的设计过程就是一个基于PC机的虚拟测控系统的开发过程,可以训练我们虚拟测控系统的研发能力。

只有亲自动手,才能真正的学好它,用好它。

毕业设计为学习与工作的中间点,它正好起到了承接的作用:

让我们知道自己的不足之处,及时改正,也为我们自己将来的工作奠定基础。

通过所学过的知识点的应用,培养我们学生良好的设计制作思想,培养学生综合分析、开发创新、设计制作的能力。

理论与实践相结合,使学生有了更强的动手能力,在就业竞争中增加有力的条件和砝码,为顺利走上工作岗位做良好的过渡和训练。

1.3系统设计方法

USB接口的计算机功能扩展板是一个单片机系统,具有多路模拟量输入输出功能,少量开关量输入输出的能力。

在硬件和软件设计上,采用USB并行接口的设计方法。

硬件设计包括模拟量输入通道的设计,模拟量输出通道的设计,开关量输入输出通道设计几部分,选择所用器件,利用protel99绘制原理图,然后设计软件流程图,利用89S52单片机进行汇编语言编写程序。

电路板采用89S52单片机和一片CPLD芯片EPM7032设计。

CPLD实现单片机的外围逻辑和一些特定功能,单片机执行上位机指定的检测和控制输出。

接口板与上位机之间通过USB传送数据和命令。

USB通信采用CH375A型通信控制器。

 

2软件设计

2.1设计流程

本课题以自动控制理论实验所用的设备由计算机、USB数据通道接口板、实验平台及运放电路板组成。

实验平台配以运放电路板接插阻容元件,可以用来模拟多种特性的被控对象。

USB数据通道接口板插于实验平台上,它起模拟信号与数字信号的转换作用,可以用计算机控制产生不同的信号。

系统连接方法见下图2-1

 

2-1系统连接图

随机配备的SAC-ACT软件包设计了自控理论的实验,所有的自动控制理论实验都是在这套装置上进行的。

接口板上的功能实现,模拟量输入与检测通过模拟开关MAX354输入,经过高速8位转换器TLC0820,把模拟量转换成数字量,A/D转换后由AT89S52单片机通过USB接口CH375把数据送给上位机进行处理与显示。

由单片机接收上位机传来的数据,把数据有选择性的模拟量输出或者数字量输出、数字量输入。

模拟量输出用双路8位乘法数模转换器TLC7628,把数字量转换成模拟量送出去。

数字量输出端由74LS07驱动,数字量输入端都由史密特触发器74LS14接收输入信号。

根据本课题系统的功能和技术指标要求,我将软件的设计分成五部分:

第一部分对一些必要的外设进行初始化;第二部分为模拟量调节;第三部分A/D转换,D/A转换;第四部少量开关量输入输出;第五部分为CH375网络通信。

在主函数里对各个不同部分进行调用从而实现整体的功能。

硬件框图如2-2所示

2-2硬件框图

单片机负责采集上位机所要的数据并传给上位机,接收上位机传来的输出数据并输出上位机需要的数据。

单片机通过CH375与上位机通信。

各种功能部件的操作方法和地址见下文,注意单片机对片外数据的存取一律使用由R0或R1作间接寻址寄存器的MOVX指令。

2.2主程序流程图

通讯数据长度有效值是0至8,第一个字节定义命令种类,第二个字节定义通道号,三个字节为数据,其中通道号和数据可为0,为了容易识别上传和下载采用一样的命令代码。

通信协议如表2-12-2所示:

2-1命令种类代码说明

命令种类

代码

开关量输入信号

001

开关量输出信号

010

模拟量输入信号

011

模拟量输出信号

111

 

2-2端口号代码说明

模拟量输入端口号

代码

模拟量输出端口号

代码

1

1

1

001

2

2

2

010

3

3

-

-

4

4

-

-

5

5

-

-

6

6

-

-

7

7

-

-

8

8

-

-

为了增强程序的可读性,我们将程序模块,在程序中合理的调用各个模块即可实现整体的功能。

主程序流程图如图2-5所示

2-5主程序流程图

2.3模拟量输入检测模块

模拟量输入与检测通道,是由模拟开关MAX354实现八路输入的切换,其中六路为模拟量输入(AI0~AI5),两路为检测模拟量输出信号(AQ0~AQ1)。

检测通道的设置。

要进行A/D转换的通道通过AT89S52单片机的P2.0~P2.2构成的二进制数给出,P2.0是最低位,P2.2是最高位。

该二进制数为000B时指定检测AI0通道;二进制数为001B时指定检测AI1通道;……;为101B时指定检测AI5通道;为110B时指定检测AQ0通道;为111B时指定检测AQ1通道。

2.4A/D转换模块

从模拟开关MAX354选通一路通道,经模拟开关MAX354的COM脚AIN送到高速8位转换器TLC0820,启动A/D通道只需对相应口地址进行写操作即可。

由AT89S52单片机P3口的P3.1来检测模拟信号的极性,P0口读取数据。

AT89S52单片机和CPLD芯片EPM7032来控制A/D转换读写,TLC0820工作在写读模式,操作地址是10H。

通过对操作地址执行写操作起动转换,P1.3端为低电平表明转换完毕(也可软件延时2μS),然后对操作地址执行读操作取回转换结果。

A/D转换结束后,计算机即可通过USB接口读取单片机寄存器数据得到转换数据。

具体的流程图如图2-6所示

2-6A/D转换流程图

2.5D/A转换模块

上位机送来的数据给下位机,AT89S52单片机和CPLD芯片EPM7032来控制D/A转换读写,TLC7628写读模式把转换完成的数据送出去。

实现模拟量输出。

输出信号作为模拟系统的信号源。

D/A输出时,进行I/0口写操作即可。

第一个模拟量输出通道AQ0的地址是20H,第二个通道AQ1的地址是21H。

操作方法是把要转换输出的值直接送入相应地址。

2.6开关量输入输出模块

开关量输入输出共4个接线端,4个(K0~K3)是输入输出共用的。

所有的输出端由74LS07驱动,所有开关量输入端都由史密特触发器74LS14接收输入信号,以便提高抗干扰性能。

共用的四个接线端K0~K3用做输出时,把要输出开关量的值送到单片机P2口的P2.4~P2.7即可,P2.4对应K0,P2.7对应K3。

P2.4~P2.7为低电平时OC输出端输出低电平。

若想检测输出值(自检)可从P1口的P1.4~P1.7读入对比,各对应位应该相反。

共用的四个接线端K0~K3用做输入时,要保证相应的输出端为高阻态,即P2.4~P2.7的对应位输出“1”。

程序从单片机P1口的P1.4~P1.7读取输入值,P1.4对应K0,P1.7对应K3。

注意读取的逻辑值与输入相反。

共用的四个接线端的输出来自单片机P2口的P2.4~P2.7,输入信号送到单片机P1口的P1.4~P1.7。

P2.4~P2.7为低电平时OC输出端输出低电平,即输出端对地短接,一般作为有效输出。

输入信号为高电平时(>2.8V)对应的P1.4~P1.7端得到低电平输入。

为了防止输出对输入的影响,共用的端点用作输入时,相应的输出端应输出“1”,使输出为高阻态。

2.7通信模块

本设计通过CH375芯片实现USB通信接口。

CH375设定为并行通信模式和内部固件模式。

此程序用来实时的将A/D转换完成的数据传给上位机或者接收上位机传来的数据由单片机选择数字量或者模拟量输出出去。

 

CH375芯片占用两个地址位,当A0引脚为高电平时选择命令端口,可以写入命令;当A0引脚为低电平时选择数据端口,可以读写数据。

单片机通过8位并口对CH375芯片进行读写,所有操作都是由一个命令码、若干个输入数据和若干个输出数据组成,部分命令不需要输入数据,部分命令没有输出数据。

命令操作步骤如下:

 

[1]在A0=1时向命令端口写入命令代码;  

[2]如果该命令具有输入数据,则在A0=0时依次写入输入数据,每次一个字节; 

[3]如果该命令具有输出数据,则在A0=0时依次读取输出数据,每次一个字节; 

[4]命令完成,可以暂停或者转到

(1)继续执行下一个命令。

CH375芯片专门用于处理USB通讯,在接收到数据后或者发送完数据后,CH375以中断方式通知单片机进行处理。

单片机通过CH375芯片接收数据的处理步骤如下:

 

[1]当CH375接收到USB主机发来的数据后,首先锁定当前USB缓冲区,防止被后续数据覆盖,然后将INT#引脚设置为低电平,向单片机请求中断; 

[2]单片机进入中断服务程序,首先执行GET_STATUS命令获取中断状态; 

[3]CH375在GET_STATUS命令完成后将INT#引脚恢复为高电平,取消中断请求; 

[4]由于通过上述GET_STATUS命令获取的中断状态是“下传成功”,所以单片机执行RD_USB_DATA命令从CH375读取接收到的数据; 

[5]CH375在RD_USB_DATA命令完成后释放当前缓冲区,从而可以继续USB通讯; 

[6]单片机退出中断服务程序。

单片机通过CH375芯片发送数据的处理步骤如下:

 

[1]单片机执行WR_USB_DATA命令向CH375写入要发送的数据; 

[2]CH375被动地等待USB主机在需要时取走数据; 

[3]当USB主机取走数据后,CH375首先锁定当前USB缓冲区,防止重复发送数据,然后将INT#引脚设置为低电平,向单片机请求中断; 

[4]单片机进入中断服务程序,首先执行GET_STATUS命令获取中断状态; 

[5]CH375在GET_STATUS命令完成后将INT#引脚恢复为高电平,取消中断请求; 

[6]由于通过上述GET_STATUS命令获取的中断状态是“上传成功”,所以单片机执行WR_USB_DATA命令向CH375写入另一组要发送的数据,如果没有后续数据需要发送,那么单片机不必执行WR_USB_DATA命令; 

[7]单片机执行UNLOCK_USB命令; 

[8]CH375在UNLOCK_USB命令完成后释放当前缓冲区,从而可以继续USB通讯; 

[9]单片机退出中断服务程序; 

[10]如果单片机已经写入了另一组要发送的数据,那么转到②,否则结束。

 

具体的程序如下

主程序的例子

主程序如下

ORG   0000H;复位后单片机入口

LJMP  START

ORG   0003H;CH375中断

LJMP  CH375_INTER

START:

LCALL  REST;初始化

            SETB  EA;允许中断

WAIT_REQUEST:

NOP

SJMP  WAIT_REQUEST;主循环

初始化子程序

 USE:

   ACC, R7, DPTR

REST:

       LCALL CH375_INIT

RET

CH375_INIT:

MOV   DPTR,#CH375_CMD_PORT;命令口地址

MOV   A,#CMD_SET_USB_MODE

MOVX  @DPTR,A;设置USB工作模式

MOV   DPTR,#CH375_DAT_PORT;数据口地址

MOV   A,#02H

MOVX  @DPTR,A;设置为使用内置固件的USB设备方式

CH375_INIT_WT:

MOVX  A,@DPTR  

                                XRL   A,#CMD_RET_SUCCESS

JNZ   CH375_INIT_WT;等待操作成功,通常需要等待10uS-20uS

; 下述三条指令用于启用中断

CLR   IT0;置外部信号为低电平触发

SETB  PX0;置高优先级

CLR   IE0;清中断标志

SETB  EX0;允许CH375中断

RET

CH375_INTER:

PUSH  PSW;现场保护

PUSH  ACC

PUSH  DPL

PUSH  DPH

PUSH  01H;R1

PUSH  02H;R2

MOV   DPTR,#CH375_CMD_PORT;命令口地址

MOV   A,#CMD_GET_STATUS

MOVX  @DPTR,A;获取中断状态并取消中断请求

MOV   DPTR,#CH375_DAT_PORT;数据口地址

MOVX  A,@DPTR;返回操作状态

CLR   IE0;清中断标志,对应于INT0中断

LJMP  CH375_DOWN_OK;USB数据接收成功,USB端点2的OUT

CH375_INT_4:

MOV   DPTR,#CH375_CMD_PORT;命令口地址

MOV   A,#CMD_UNLOCK_USB

MOVX  @DPTR,A;释放当前USB缓冲区

SJMP  CH375_INT_RET

CH375_INT_RET:

POP   02H;R2

POP   01H;R1

POP   DPH

POP   DPL

POP   ACC

POP   PSW;恢复寄存器

RETI;中断返回

; USB数据接收成功

CH375_DOWN_OK:

MOV   DPTR,#CH375_CMD_PORT;命令口地址

MOV   A,#CMD_RD_USB_DATA

MOVX  @DPTR,A;从当前USB中断的端点缓冲区读取数据块,并释放缓冲区

NOP;如果时钟频率低于16MHz则无需该指令延时

NOP;如果时钟频率低于16MHz则无需该指令延时

MOV   DPTR,#CH375_DAT_PORT;数据口地址

MOVX  A,@DPTR;首先读取后续数据长度

MOV   R2,A

JZ    CH375_INT_RET;长度为0,没有数据则直接退出

MOV   RECV_LEN,A

MOV   R1,#RECV_BUFFER;接收缓冲区

CH375_INT_RECV:

MOVX  A,@DPTR;接收数据

MOV   @R1,A

INC   R1

DJNZ  R2,CH375_INT_RECV;继续接收数据直至结束

CALL  PROCESS;分析下传数据并准备应答

LJMP  CH375_INT_RET         

 end

2.8逻辑电路的实现

本设计的外围逻辑电路由EPM7032实现。

Altera公司的MAX+PLUSⅡ(MultipleArrayMatrixandProgrammableLogicUserSystem)开发系统可对该器件提供软件设计支持。

程序见附录C

 

3系统的硬件设计

3.1虚拟测控接口板技术说明

[1]虚拟测控接口板概述

虚拟测控接口板是针对“沈飞电子公司生产的CCT

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2