单片机原理及接口技术.docx
《单片机原理及接口技术.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术.docx(11页珍藏版)》请在冰豆网上搜索。
![单片机原理及接口技术.docx](https://file1.bdocx.com/fileroot1/2023-5/15/3b545804-d6fb-489d-8df1-f0e27d7fd729/3b545804-d6fb-489d-8df1-f0e27d7fd7291.gif)
单片机原理及接口技术
《单片机原理及接口技术》课程设计
目录
摘要………………………………………………………………..2
1.绪论…………………………………………………………….2
1.1问题的提出……………………………………………………2
1.2设计的意义……………………………………………………3
1.3设计的内容……………………………………………………3
2.串行通信原理…………………………………………………..3
2.1串行通信的基本知识…………………………………………..3
2.2异步通信与同步通信…………………………………………..4
2.2.1异步通信………………………………………………………4
2.2.2同步通信……………………………………………………….6
2.3串行通信传输方向………………………………………………6
3.USB设备原理……………………………………………………..6
3.1USB设备…………………………………………………………6
3.2传输方式…………………………………………………………7
4.单片机和PC机通过USB实现串行通信设计…………………...9
4.1硬件电路设计……………………………………………………..9
4.2PC机与USB通信程序设计………………………………………10
5.设计总结……………………………………………………………12
参考文献………………………………………………………………..13
USB与PC通信
摘要基于串口通讯的原理,分析和讨论了计算机与单片机如何通过USB接口使用相关的通讯协议实现串行通信的。
本设计主要介绍如何使用一台计算机与一台单片机通过USB接口实现串行通信。
在本设计中,单片机采用AT89C51,USB转接芯片CH341T;软件设计方面,PC机采用C语言编程,单片机方面用中断方式完成数据的接收和发送,程序开发采用汇编语言和KeilC语言
关键词PC机单片机USB串行通信
1.绪论
1.1问题的提出
通信是指不同的独立系统利用线路互相交换数据,它的主要目的是将数据从一端传送到另一端,实现数据的交换。
在现代工业控制中,通常采用计算机作为上位机与下层的实时控制与监测设备进行通讯。
现场数据必须通过一个数据收集器传给上位机,同样上位机向现场设备发命令也必须通过数据收集器。
串行通信因其结构简单、执行速度快、抗干扰能力强等优点,已被广泛应用于数据采集和过程控制等领域。
随着计算机技术尤其是单片微型机技术的发展,人们已越来越多地采用单片机来对一些工业控制系统中如温度、流量和压力等参数进行监测和控制。
PC机具有强大的监控和管理能力,而单片机则具有快速及灵和的控制特点,通过PC机的RS-232串行接口与外部设备进行通信,是许多测控系统中常用的一种通信解决方案。
1.2设计的意义
通信是现代社会发展必不可少的的一项联系。
通过单片机原理及接口技术课程设计使学生掌握USB与PC机通信的方式,通信的原理、方式和特点。
对所学的单片机知识做一个全面的复习与总结,并通过课程设计实践,提高实践动手能力,将理论知识与实践相结合。
1.3设计内容
这次设计的是PC与单片机通过USB接口实现串行通信。
这次设计的关键是串行通信的原理、USB技术原理、单片机和PC机通过USB实现串行通信设计和实现。
2.串行通信的原理
2.1串行通信的基本知识
信息交换有两种方式:
串行通信和并行通信方式。
串行通信是将数据字节分成一位一位的形式在一条传输线上逐个地传送,如图1所示,串行通信时,数据发送设备先将数据代码由并行形式转化成并行形式,然后一位一位地逐个放在传输线上进行传送;数据接收设备将接收到的串行位形式的数据转化成并行形式进行存储或处理。
串行通信必须采取一定的方法进行数据传送的起始及停止控制。
图1串行通信示意图
2.2异步通信与同步通信
依发送与接收设备时钟的配置方式串行通信可以分为异步通信和同步通信。
2.2.1异步通信
异步通信是指发送和接收设备使用各自的时钟控制数据的传输过程。
为使收发双发协调,要求发送和接收设备的时钟频率尽可能一致(误差在允许的范围内),如图2所示。
异步通信是以字符为单位(构成的帧)为单位进行传输,字符与字符之间的间隙任意,但每个字符中的各位是以固定的时间传送的,即字符之间是异步的,但同一字符内的各位是同步的。
图2异步通信示意图
异步通信也要求发送设备与接收设备传送数据的同步,采用的办法是使传送的每一个字符都以起始位“0”开始,以停止位“1”结束。
异步通信的帧格式如图3所示。
图3异步通信帧格式
由图可见,异步通信的每帧数据由四部分组成:
起始位(1位)、数据位(8位)、奇偶校验位(1位,也可以没有校验位)和停止位(1位)共11位组成一个传输的字符帧。
数据传输时低位先传送,高位后传送。
字符之间允许有不定长度的空闲位。
起始位“0”作为传输开始的联络信号,它告诉接收方传送的开始,接下来就是数据位和奇偶校验位,停止位“1”表示一个字符帧的结束。
异步通信的特点是不要求收发双方时钟严格的一致,易于实现,但每个字符要附加2~3位用于起始位,各帧之间还有间隔,因此传输效率不高。
PC机上的RS—232C接口是典型的异步通信的接口。
2.2.2同步通信
同步通信时要建立发送方时钟对接收方时钟的直接控制,使数据传送完全同步。
同步通信传输效率高。
用于同一电路板内各元件之间数据传送的SPI借口就是典型的同步通信接口。
2.3串行通信的传输方向
串行通信依数据传输的方向及时间的关系可分为:
单工、半双工和全双工。
如图4所示。
单工是指数据传输仅能沿一个方向,不能实现反向传输,如图4(a)所示。
半双工是指数据传输可以沿两个方向,但需要分时进行,如图4(b)所示。
全双工是指数据可以同时进行双向传输,如图4(c)所示。
图4三中传输方向
3.USB技术原理
3.1USB设备
一个USB设备可以分为三个层图如图5所示。
最底层是总线接口,用来发送与接收包。
中间层处理总线接口与不同的端点之间的数据流通。
一个端点是数据最终的使用者或提供者,它可以看作数据的源或接收端。
最上层就是USB设备所提供的功能,比如鼠标或键盘等。
图5设备层次结构图
3.2传输方式
USB有四种的传输方式:
控制(Control)、同步(isochronous)、中断(interrupt)、大量(bulk)。
如果是从硬件开始来设计整个的系统那还要正确选择传输的方式,而作为一个驱动程序的书写者就只需要弄清楚其采用的什么工作方式就行了。
通常所有的传输方式下的主动权都在PC边。
3.2.1控制(Control)方式传输
控制传输是双向传输,数据量通常较小。
USB系统软件用来主要进行查询、配置和给USB设备发送通用的命令。
控制传输方式可以包括8、16、32和64字节的数据,这依赖于设备和传输速度。
控制传输典型地用在主计算机和USB外设之间的端点(Endpoint)0之间的传输,但是指定供应商的控制传输能用到其它的端点。
3.2.2同步(isochronous)方式传输
同步传输提供了确定的带宽和间隔时间latency)。
它被用于时间严格并具有较强容错性的流数据传输,或者用于要求恒定的数据传输率的即时应用中。
例如,执行即时通话的网络电话应用时,使用同步传输模式是很好的选择。
同步数据要求确定的带宽值和确定的最大传输次数。
对于同步传输来说,即时的数据传递比完美的精度和数据的完整性更重要一些。
3.2.3中断(interrupt)方式
传输中断方式传输主要用于定时查询设备是否有中断数据要传输,设备的端点模式器的结构决定了它的查询频率,从1到255ms之间,这种传输方式典型的应用在少量的分散的,不可预测数据的传输。
键盘、操纵杆和鼠标就属于这一类型。
中断方式传输是单向的并且对于host来说只有输入的方式。
3.2.4大量(bulk)传输
主要应用在数据大量传输和接受数据上,同时又没有带宽和间隔时间要求的情况下,要求保证传输。
打印机和扫描仪属于这种类型。
这种类型的设备适合于传输非常慢和大量被延迟的传输,可以等到所有其它类型的数据的传输完成之后再传输和接收数据。
USB将其有效的带宽分成各个不同的帧(frame),每帧通常是1ms时间长。
每个设备每帧只能传输一个同步的传输包。
在完成了系统的配置信息和连接之后,USB的host就对不同的传输点和传输方式做一个统筹安排,用来适应整个的USB的带宽。
通常情况下,同步方式和中断方式的传输会占据整个带宽的90%剩下的就安排给控制方式传输数据。
4.单片机和PC机通过USB实现串行通信设计
4.1硬件电路设计
CH341T提供全速USB设备接口,兼容USB2.0,外围器件只需要电容和晶体,电路如图6所示。
图6USB通信模块电路图
其中,电源电压为5V,USB接口的差分数据线对与CH341T的UD-和UD+直接相连。
CH341T提供TTL电平,同AT89C51直接采用简单的3线连接(RXD—TXD;TXD—RXD;GND—GND)。
在5V电源的情况下,V3口需要外接0.01uF的退耦电容。
TEN#为串口发送数据使能端,低电平有效。
CH341T必须使用12Mhz晶振,否则无法正常工作。
为保证单片机能够产生与计算机匹配的波特率,单片机采用11.0592Mhz的晶振。
4.2PC机与USB通信程序设计
计算机与USB通信处理流程图如图7所示。
图7计算机与USB通信处理流程图
部分关键代码如下:
voidmain(void)
{init_port();/*初始化I/O口*/
init_timer0();/*设置定时器0*/
init_special_interrupts();/*设置中断*/
//D12_DATA=0xfb02;/*定义数据地址*/
//D12_COMMAND=0xfb03;/*定义命令地址*/
D12_DATA=0x7002;/*定义数据地址*/
D12_COMMAND=0x7003;/*定义命令地址*/
D12_SetDMA(0x0);/*不使用DMA功能*/
bEPPflags.value=0;/*初始化USB寄存器*/
/*上电复位,USB总线重新连接指令*/
reconnect_USB();
while(TRUE)
{if(bEPPflags.bits.configuration)
{I2cWriteRead();/*如果设备已配置,调用I2cWriteRead()*/
}
outportb(port,a);/*发送数据
usbserve();/*处理USB的setup包*/
for(j=0;j<9;j++)/*接收数据*/
{
while(!
(inportb(port+5)&1));
ch[j]=inportb(port);
}
for(j=0;j<9;j++)
printf("n%d\n",ch[j]);
getch();
break;
}
5设计总结
通过这次课程设计,了解了PC机与USB通信的重要性,进一步熟悉了单片机的基本知识,还复习了C语言知识。
从这次课程设计中,我再一次的明白从理论到实践,把所学的知识运用到实际中,解决实际问题,需要有综合和创新能力,而我在这方面是有所欠缺的。
因此,在这次课程设计中这两个能力得到培养,不但巩固了以前所学的知识,而且学到了学到课外知识。
通过这次课程设计,我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的为社会服务,从而提高自己的实际动手能力和独立思考能力。
在设计的过程中难免会遇到各种各样的问题,同时在设计的过程中也发现了自己的不足之处,对以前所学的知识理解的不够深刻,掌握的不够牢固,可是通过这次课程设计之后,我一定会把以前所学的知识重新复习,温故而知新。
同时在设计过程中为解决一些棘手的问题。
总之,为了这次课程设计我确实的付出了,当这份报告完成时,我有一种自由的的感觉。
过程有苦也有甜,我的努力得到了回报。
参考文献
【1】李全利《单片机原理及接口技术》高等教育出版社2004年
【2】谭浩强《C程序设计》清华大学出版社2005年