毕业论文-学习型USB红外遥控器设计与实现_第1页
毕业论文-学习型USB红外遥控器设计与实现_第2页
毕业论文-学习型USB红外遥控器设计与实现_第3页
毕业论文-学习型USB红外遥控器设计与实现_第4页
毕业论文-学习型USB红外遥控器设计与实现_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大连东软信息学院高职毕业设计(论文)论文题目论文题目:学习型USB红外遥控器设计与实现系 所: 电子工程系 专 业: 嵌入式系统工程 学生姓名: 学生学号: 指导教师: 导师职称: 讲师 完成日期: 2014 年 5 月 2 日 大连东软信息学院Dalian Neusoft University of Information大连东软信息学院毕业设计(论文) 摘要 IV学习型USB红外遥控器设计与实现摘 要红外通信由来已久,但是进入90年代,这一通信技术又有新的发展,应用范围更加广泛。现在约有120 家以上的厂商支持红外通信标准。红外数据协会开发的这种新的无线通信标准还得到PC机产业的有力支持。

2、主要的开发厂商,如微软、苹果、东芝和惠普公司,已推出了在计算机之间采用这种高速红外数据通信的PC机、笔记本计算机、打印机和手持式个人数字助理(PDA)设备。此外,红外通信的连通性已用在大多数新的笔记本计算机中,并成为一种最具成本效益和便于使用的无线通信技术而问鼎市场。本文分以下几部分阐述了基于红外通信原理,在PC机上可设计和存储红外信号编码规则,实现对多种既有遥控设备红外信号的学习和记忆功能。关键词:红外线通信,红外信号,PC大连东软信息学院毕业设计(论文) Abstract Design and Implementation of Learning USB Infrared Remote C

3、ontroller AbstractInfrared communication for a long time, but the 1990s, the new communications technologies have developed broader range of applications. Now, about 120 or more vendors support infrared communication standards. This new wireless communication standard developed by the Infrared Data

4、Association also received strong support from the PC industry. Major development companies, such as Microsoft, Apple, Toshiba and Hewlett-Packard, has launched between computers using this high-speed infrared data communication PC, notebook computers, printers and handheld personal digital assistant

5、 (PDA) devices. In addition, connectivity and aspirations infrared communications market has been used in most new notebook computers, and become a most cost-effective and easy to use wireless communication technology.In this paper, the following part elaborated based on the principle of infrared co

6、mmunication, can design in PC and store the infrared signal encoding rules,to realize both the remote control equipment infrared signal to the variety of the learning and memory function.Key words: Infrared communication, Infrared signals, PC 大连东软信息学院毕业设计(论文) 目录目 录 TOC o 1-3 u 摘 要 PAGEREF _Toc387783

7、639 h IAbstract PAGEREF _Toc387783640 h II第1章项目概述 PAGEREF _Toc387783641 h 11.1项目背景 PAGEREF _Toc387783642 h 11.2项目简介 PAGEREF _Toc387783643 h 21.3应用范围 PAGEREF _Toc387783644 h 2第2章项目实施方案 PAGEREF _Toc387783645 h 32.1相关技术介绍 PAGEREF _Toc387783646 h 32.1.1红外通信 PAGEREF _Toc387783647 h 32.1.2红外编码 PAGEREF _To

8、c387783648 h 32.1.3 NEC编码格式 PAGEREF _Toc387783649 h 52.1.4 RC-5编码格式 PAGEREF _Toc387783650 h 62.1.5串口通信 PAGEREF _Toc387783651 h 72.1.5 Microsoft Visual Studio PAGEREF _Toc387783652 h 72.2开发环境 PAGEREF _Toc387783653 h 82.3硬件设计 PAGEREF _Toc387783654 h 82.3.1硬件系统框图 PAGEREF _Toc387783655 h 82.3.3典型电路设计 PA

9、GEREF _Toc387783656 h 92.4软件设计 PAGEREF _Toc387783657 h 102.4.1软件系统框图 PAGEREF _Toc387783658 h 102.4.2解调模块设计 PAGEREF _Toc387783659 h 10第3章项目实施过程 PAGEREF _Toc387783660 h 123.1实现过程 PAGEREF _Toc387783661 h 123.1.1串口通信 PAGEREF _Toc387783662 h 123.1.2信号处理 PAGEREF _Toc387783663 h 133.1.3软件实现 PAGEREF _Toc387

10、783664 h 14第4章项目成果 PAGEREF _Toc387783665 h 184.1硬件成果物 PAGEREF _Toc387783666 h 184.2软件成果物 PAGEREF _Toc387783667 h 18第5章结 论 PAGEREF _Toc387783668 h 23参考文献 PAGEREF _Toc387783669 h 24致 谢 PAGEREF _Toc387783670 h 25大连东软信息学院毕业设计(论文)- 第1章项目概述红外遥控技术就是指红外技术、红外通讯技术和远程控制技术的结合。红外遥控有着不影响周围环境的特点,它不会干扰其它的遥控电器设备。由于红

11、外线属于光谱上的不可见光,所以其主要特征就是抗干扰和直线性传播特性,并不易于相互干扰,是信息传输的良好媒介。红外遥控技术在十几年来一直在家电和其他电子产品领域的快速发展并得到了广泛应用。随着生活水平的提高,人们对产品的追求是使用更方便、更具智能化,红外遥控技术正是一通信个重点的发展方向。1.1项目背景最早的一个控制器,由一个叫尼古拉特斯拉的发明家开发的,在60年代初期,一些发达国家就开始研究把遥控技术应用在民用产品上,但是由于当时的技术条件受限制,遥控技术的发展很慢,随着大规模的集成电路还有计算机技术的飞速发展,遥控技术的发展随之加快,在远程控制模式上发展经历了从有线到无线上的超声波、从振动子

12、发展到红外线、然后微机红外遥控上的总线的使用,使遥控技术最终达到令人满意的效果。控制装置最先是采用电磁波来传输信号的,因为容易产生电磁干扰,同时也容易受到干扰,逐步引入超声波还有红外信号来作为传输的介质,和红外线相比较,带频上来看超声波带频很窄,可携带的信息较少,容易受干扰从而引起误动作。相比而言较理想的是光控制方式,超声波的控制方式逐渐被红外线取代了,红外线多功能的遥控器的出现,使红外遥控逐渐变成主流。因为红外线在频谱上是不可见光,所以抗干扰性强,且不容易互相干扰、并具有光的线性传播特性,是一个很长优秀的信息传输媒介,信息可被直接调制在红外光上进行传输,比如,传输信息的红外光可以直接调制其强

13、度,也可以使红外线产生一个载波,然后输入的载波调制,接收器接收到信息后,再取下载波读取信息,同时考虑到从信息的可靠传输上来说,后者的方法是较好的,这是目前的大使用红外遥控器大多数方法。进入90年代,这一通信技术又有新的发展,应用范围更加广泛。现在约有120 家以上的厂商支持红外通信标准。由红外数据协会开发了这种新的无线通信标准也得到了强有力的支持,从PC产业。主要发展公司像惠普,东芝和微软,已经使用这种高速红外数据通信在笔记本电脑,手持式个人数字助理(PDA)设备,打印机和PC之间广泛应用。另外,红外通信连接已被用于大多数新的笔记本电脑所应用,并成为最具成本效益和易于使用的无线通信技术。1.2

14、项目简介基于红外通信原理,使用单片机实现对38K或更宽范围内的红外信号(NEC编码格式)进行收发,再由串口(或USB转串口)与上位机PC通信;基于C#.NET技术开发Windows应用软件,在PC机上可设计和存储红外信号编码规则,实现对多种既有遥控设备红外信号的学习和记忆功能,也可以实现对特殊红外信号通讯协议的定制。1.3应用范围红外遥控技术在航空航天,工业,家电领域使用广泛。红外遥控器是一种非接触、无线的控制技术,具有低成本,信息传输可靠,较强的抗干扰能力强,易于实施,低功耗,易于实施等显著优点,许多电子设备被广泛使用,特别是在家电,更多的应用在计算机系统。在小型移动设备中得到了广泛的应用。

15、近年来很多著名半导体厂商,如agilent、vishay、sharp等,相继推出了许多遵循同一规范的不同类型器件。在不同的领域有广泛的应用。在汽车的影音和导航系统中也广泛应用了红外遥控功能,不影响周围环境、不与其他电器设备造成干扰是它最显著的特点,因为它是无法穿透建筑墙壁的,所以在不同的房间设备可使用通用遥控器,而不会造成相互干扰。电路调试相对简单,只要按照给定电路连接是否正确,一般可以马上投入到工作中而不需要任何调试。编解码相对容易,可以进行多路的遥控,因为每个厂家生产了大量红外遥控专用芯片,因此需要你想要什么,只要按需所求就行了。红外遥控的设备在近距离(10米)遥控和家电的遥控器已被广泛应

16、用。 第2章项目实施方案2.1相关技术介绍2.1.1红外通信红外通信技术是使用红外线来进行传输数据的,它是一种无线通信技术。红外通信不需要对设备进行物理连接,易于使用,并且有着较低的成本,被广泛应用于小型移动设备和电器设备的数据交换控制上。比如,一台笔记本电脑和一部手机之间的数据交互或着电视机的遥控器和空调的遥控等。常用的红外波长范围在0.75m到26m。它属于红外线里面的近红外线。因为红外线波长较短,对障碍物的衍射能力较差。所以说红外通信技术更适合于短距离的无线通信。目前来说,红外通信主要进行的是遥控还有数据通信两方面,红外通信数据传输容量大,有较高的传输速率,但距离相对较近,最多也只能达到

17、1米。但是红外遥控并不相同,因为发送红外遥控所需的数据很少,通常只有几个字节到几十的控制码,所以能传输距离相对远,大约在10米左右。因为光的直线传播特性,红外通信并不适合于传输在障碍较多的地方,在大多数情况下,传输效率不高、传输距离较短。为了解决多个设备之间的互连问题,红外数据协会创建了一个统一的红外线数据通信的标准。2.1.2红外编码一些最早的遥控器(和同代的少数电子遥控器)使用纯简系统,其中使用的红外发光二极管是简单地打开和关闭。然而,为了避免由于其它光源的干扰,特别是荧光灯灯泡的干扰,并且为了保持该信号不会被淹没在环境光的干扰中,大多数的遥控系统进行数字调制加载在10kHz至100kHz

18、的之间的载波频率上。在遥控器的接收单元上加载滤波器消除载波频率,只留下所想得到的频率。在对数据进行编码时,调制系统一般都会改变脉冲(脉冲宽度调制)的宽度或者调节系统会改变脉冲(脉冲调制的空间)之间的空隙的宽度。另一种流行的系统的名字叫做双相编码,双相编码系统是使用信号转换来传达信息的。双相编码系统将在后面进行更为详细地描述。调节系统每个脉冲实际上都是一个脉冲串的IR中的载波频率。这些编码没有明确的编码标准。虽然如此,尽管有许许多多的家庭娱乐设备使用自己专有的编码方案,但是一些准标确实存在。这些确实存在的标准包括RC-5标准,RC-6标准,和REC-80标准。此外,许多厂商如NEC也建立了自己的

19、标准。1.NEC标准:当按下按钮是,由不同的遥控键发出的遥控代码也不同。这个遥控代码有如下特点:串行脉冲是脉宽调制的,0.565ms的脉冲宽度、间隔为0.56ms的、周期是1.125ms用来表示二进制“0”;0.565ms的脉冲宽度,间隔为1.685毫秒,周期是2.25ms用来表示二进制“1”。上述“1”和“0”的二进制码通过38kHz的频率调制,以达到提高传输效率、减少电力消耗的目。然后由红外二极管发射红外线传输到外界。UPD6121G的遥控编码是由一个连续的二进制代码组成的32位编码,用户识别符在前16位,以区分不同的设备。以防止遥控器代码之间的干涉。用户识别符为固定的十六进制01H;后1

20、6位由反码和8为操作码组成。 UPD6121G构成多达128个不同的编码的组合。按下遥控器上的按钮后,定期用32位二进制代码发射,108ms为一个周期。包含的“1”、“0”的个数不同这组码的持续时间也不同。当一个按键被按下超过36ms时,芯片被振荡器激活,将发射出一组编码脉冲大约为108ms,这个代码包含一个前起始码(9毫秒),结果码(4.5毫秒) ,低8位的地址码(9毫秒18毫秒),高8位的地址码( 9毫秒18毫秒),8位的数据码( 9毫秒18毫秒)和这八位数据反码(9毫秒18毫秒)组成。如果键被按下超过108ms仍未被松开,下面发射的数据(连发的代码)将仅由两部分组成:起始码(9毫秒)还有

21、结束码(2.5毫秒)。NEC标准红外编码可同时控制多个接收装置而不产生干扰。因红外发射芯片的地址码为固定的一个,只能控制单独的一个装置或控制相同地址码的装置,且只能控制与遥控器上键数相同的功能,大多数为十多个。而学习编码的优势是只用一个单片机就能至少有256个地址码(地址码不取反的话地址码将更多),一个地址码有对应的多个受控装置,可见红外编码可大大节约资源。2.RC-5标准:由飞利浦公司开发的,飞利浦公司所使用RC5码是一种双相码,这种RC5码其中每个位是根据出现的先后顺序再给每个位之间定义一个时间间隔,再加入一个均匀的延时。这个逻辑值是一个把由高到低的过渡定义为一个“0”,再把一个从低到高的

22、过度定义为一个“1”的逻辑值。如果两个位或更多个相同的位同时被发送的时候,在每个位的开始时间的延时都是需要的信号设置为适当的启动级别中间的字是另一个中间的低位所决定的循环移位结果,以提高密码强度,这也是RC-5的新颖之处。RC-5的编码示意图如图2.1所示。图2.1 RC-5编码示意图 在RC-5标准,每一个命令是14位长。第2位是初始化或启动位。这些允许接收机同步到发射机,并调整自动增益控制。下位,跳变位,改变状态,每按一个新的按键。这使得接收机能够清楚地识别到特定的键被按下多次连续。跳变位后面跟一个识别地址,它允许远程控制,用来确定哪些设备(电视机,录像机,CD播放机等)应改响应相应的命令

23、。地址后面的码序列用来识别按下的按钮.RC-5命令结构示意图如图2.2所示。图2.2 RC-5命令结构示意图由飞利浦,RC-5的鼻祖近期推出,新的RC-6扩展了RC-5的结构。每个命令由一个报头字段,控制字段,信息字段,和命令之间定义的“自由信号的时间”的信息字段组成,该字段可以是1到长16字节,被设计为容纳即将生产的遥控器的复杂需求。3.REC-80标准:松下普及的,在REC-80代码中使用空间宽度调制。每个位由一个高层次的固定时间T,连接着一个低电平从而改变宽度。一个空白是2T表示逻辑“0”,和一个空白是3T表示逻辑“1”的。REC-80编码结构示意图如图2.3所示。图2.3 EC-80编

24、码结构示意图4.SONY标准:索尼使用,其中脉冲的长度是变化的脉冲编码信号,并将该间隔的长度是恒定的。SONY标准编码结构示意图如图2.4所示。图2.4 SONY标准编码结构示意图除了这些不同的编码技术中,不同的制造商将改变前导码,地址和数据的长度,并可能进行错误检查添加的冗余位。有些还包括“变位”,让接收器来检测,是否一个按钮被按下两次。2.1.3 NEC编码格式NEC编码格式:(1)头码:9ms高电平+4.5ms低电平(2)码0:0.56ms高电平+0.56ms低电平(3)码1:0.56ms高电平+1.68ms低电平(4)结束位:0.56ms高电平(5)发码顺序为先发低位再发高位(6)单键

25、码:头码+16位系统码+8位数据码+8位数据码反码(7)连续键码(发简码):9ms高电平+2.25ms低电平+结束位(8)简码重复周期:108ms(9)引导码+系统码(16位)+数据码(8位)+数据码反码(8位)+结束码。2.1.4 RC-5编码格式1.格式起始位(1位)验证位(1位)+控制位(1位)系统码(5位)+命令位(6位)。共有14位数据,其中各位的定义如下:(1)START BIT:第一位固定为逻辑1。占用一位。(2)INDITICATION BIT:占用一位。如果验证位为逻辑1,命令位(COMMAND BITS)表示063,这是原始RC5系统;如果验证位为逻辑0,命令位(COMMA

26、ND BITS)表示64127。这是扩展RC5系统。(3)CONTROL BIT:用于区分是不是有新的键按下。如果有新的按键按下,这一位变换一次。占用一位。(4)系统位(SYSTEM BITS)。接下来的5位表示所要控制的设备类型,比如TV,VCR,TUNER 等等。占用五位。(5)命令位(COMMAND BITS)。最后六位表示按键的值。2.数据的逻辑定义(1)RC5逻辑电平的定义(对于接收到的数据)。逻辑1:先高后低,下降沿。逻辑0:先低后高,上升沿。发送的数据是接收的取反。(2)RC5每一位的时间RC5用36K载波,半位的时间(1T)占32个载波周期半位时间:32*27778=888.8

27、89s(1T)位时间:2*888.889=1777.778s(2T)(3)RC5消息经历时间(MESSAGE TIME)和一帧(FRAME TIME)一个消息里包含14位,所以消息时间为:14*1777.778=24.889MS(28T)一个帧里包含15.5位,所以帧时间为:15.5*1777.778=27.556MS(31T)(4)RC5重复时间(REPEATING TIMING)112.4ms2.1.5串口通信串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低。串

28、口是计算机上一种非常通用的设备通信协议。大多数计算机(不包括笔记本电脑)包含两个基于RS-232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。RS-232(ANSI/EIA-232标准)是IBM-PC及其兼容机上的串行连接标准。可用于许多用途,比如连接鼠标、打印机或者Modem,同时也可以接工业仪器仪表。用于驱动和连线的改进,实际应用中RS-232的传输长度或者速度常常超过标准的值。RS-232只限于PC串口和设备间点对点的通信。RS-232串口通信最远距离是50英尺。串口通信(Serial Co

29、mmunications)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进

30、行通信的端口,这些参数必须匹配。2.1.5 Microsoft Visual StudioMicrosoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。所写的目标代码适用于微软支持的所有平台,包括Microsoft Windows、Windows Phone、Windows CE、.NET Framework、.NET Compact Framework和Microsoft Silverlight。而Visual Studio .

31、NET是用于快速生成企业级ASP.NET Web应用程序和高性能桌面应用程序的工具。Visual Studio包含基于组件的开发工具(如Visual C#、Visual J#、Visual Basic和Visual C+),以及许多用于简化基于小组的解决方案的设计、开发和部署的其他技术。它被定位为用于应用程序生命周期管理。它将包括新的建模工具,包含可以图形化显示工程和类,以及它们之间关系的架构浏览器。它支持UML活动图、组件图、(逻辑)类图、串行图以及用例图。Visual Studio Team System 2012还包括测试影响分析(Test Impact Analysis),它可以在不实

32、际运行测试用例的情况下,对于源代码的修改会影响那些测试用例给出建议。影响分析提供线索的测试案例的影响,修改的源代码,但实际运行的测试案例。由于避免了运行不需要的测试用例,测试的速度会有所提高。Visual Studio Team System 2012还包括一个历史调试器。与目前只记录当前活动栈的调试器不同,历史调试器的历史记录所有的活动,包括之前的函数调用、方法参数、事件、异常等。这允许执行代码回退到错误发生的地点,即使没有设置断点。历史调试将导致应用程序运行速度比目前的调试器慢,并且将使用更多的内存用于记录额外的数据。微软允许配置应记录多少数据,实际上允许开发人员来平衡执行的速度和资源的使

33、用。Visual Studio Team System 2012的实验室管理组件使用虚拟化技术来为测试者和开发人员创建一个类似的执行环境。这些虚拟机使用检查点来标记,这些检查点可以在以后用来检查问题,并且可以重现问题。Visual Studio Team System 2012还包括记录测试运行的能力,可以记录操作环境的特定状态以及运行测试的必要步骤。这些步骤可以回放来重现问题。2.2开发环境软件环境:windows基于C#2.3硬件设计2.3.1硬件系统框图1.红外接收端硬件框图如图2.5所示。图2.5 红外接收端硬件框图2.红外发射端硬件框图如图2.6所示。图2.6 红外发射端硬件框图2.

34、3.3典型电路设计1.红外发射端电路的一般设计如图2.7所示。图2.7 红外发射端电路2红外接收端电路的一般设计如图2.8所示。图2.8 红外接收端电路2.4软件设计2.4.1软件系统框图根据需求调研结果确定本系统主要包括以下功能模块,如图2.9所示。图2.9 功能模块2.4.2解调模块设计解调模块分为两个部分,分别是引导码的识别和系统码、数据码的译码1. 引导码的标识。没有接收到信号时,其电平输出为高,但是在引导码出现时会有低电平输出,时间宽度是我们预先知道的的,接收远程信号时将有一个低电平输出一段时间(大约9ms),我们只要小于该低电平的时间间隔查询输入信号就能发现遥控信号。如果是一个远程

35、控制信号被检测到,之后再确定了高电平的宽度,看到的引导代码的高电平宽度是否是识别远程控制信号的引导代码,如是的话,准备好读取后续的代码,不是则重新搜索引导代码。程序流程图如图2.10所示。图2.10 程序流程图2. 0、1电平的识别是系统码和数据码识别的重点。根据上述遥控编码方法表明,只要我们可以从接收器测量高电平信号的宽度,以获得它的代码。在脉冲宽度编码方法,宽度为0.7ms的信号被用来表示0的高电平,宽度为1.4ms的信号被用来表示1的高电平,我们需要做的是确定一个高电平的宽度。如0.6ms信号宽度0.8ms,可以认为是0,1.3ms信号宽度1.5ms,可以认为是1,这样我们就可以更容易地

36、使用程序来读取的代码。程序流程图如图2.11所示。图2.11 程序流程图第3章项目实施过程3.1实现过程3.1.1串口通信1.目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连。通常,在C#中实现串口通信,我们有四种方法:第一:微软推出了新的串口控制,基于NET的P / Invoke调用的方法实现。 第二:API写串口通信,会困难些,但对我们来说,可以轻松实现多种功能你想要的。第三

37、:通过MSCOMM控件这是最方便、最简单的方式。可是难以轻松控制各项功能,而控件系统本身没有,所以必须要注册。 第四:用第三方控件。我们采用第二种方法来实现串口通信,用现成的已经封装好的类库,常见两个串口操作类是JustinIO和SerialStreamReader。(1)JustinIO的使用方法:打开串口: 函数原型:public void Open() 说明:打开事先设置好的端口写串口: 函数原型:public void Write(byte WriteBytes) 说明:WriteBytes 就是你的写入的字节。 读串口: 函数原型:public byte Read(int NumBy

38、tes) 说明:NumBytes 读入缓存数,读取来的是字节数组,要实际应用中要进行字符转换。关闭串口: 函数原型:ss_port.Close() (2)在.NET Framework 2.0中提供了SerialPort类,该类主要实现串口数据通信等。使用SerialPort类的方法:方法一:首先要添加using System.IO;using System.IO.Ports;1.在类的内部定义SerialPort com;2.打开串口com = new SerialPort();com.BaudRate = 115200;com.PortName = COM1;com.DataBits =

39、8;com.Open();/打开串口3.发送数据Byte TxData =1,2,3,4,5,6,7,8 ;com.Write(TxData, 0, 8);4.接收数据(1)使用事件接收.DataReceived+=newSystem.IO.Ports.SerialDataReceivedEventHandler(this.OnDataReceived);private void OnDataReceived(object sender, SerialDataReceivedEventArgs e)(2)使用线程接收接收数据启动一个线程,使其接收。在类的内部定义Thread _readThre

40、ad;bool _keepReading;打开串口后启动线程_keepReading = true;_readThread = new Thread(ReadPort);_readThread.Start();方法二:使用C#自带的SerialPor控件。1.在“工具箱”的“组件”中选择SerialPor控件添加。2.设置串口并打开serialPort1.PortName = COM1;serialPort1.BaudRate = 9600;serialPort1.Open();3.写入数据可以使用Write或者下面的函数serialPort1.WriteLine(str);4.添加数据接收的

41、事件private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)3.1.2信号处理发送端为由一系列红外信号组成的,并将基带二进制信号调制成脉冲串信号。接收的脉冲光信号转换成电信号作为接收端,然后,滤波处理和放大,解调电路解调后恢复成二进制数字信号输出。利用近红外波段的红外线作为传输信息的媒体。常用的两张方法分别是:调制信号通过脉冲串之间的时间间隔来实现的脉冲时间调制(PPM)和调整脉冲信号的宽度的脉宽调制(PWM)两种方式。3.1.3软件实现(1)获取端口信息private void Ge

42、tValidSerialPort() comboBoxPort.Items.Clear(); string port; for (int i = 1; i 21; i+) port = COM + i; if (TestSerialPort(port) comboBoxPort.Items.Add(port); (2)初始化串口private void InitializeSerialPort() sp.BaudRate = 9600; sp.DataBits = 8; sp.Parity = Parity.None; sp.StopBits = StopBits.One; sp.Receiv

43、edBytesThreshold = 1; (3)测试串行端口private bool TestSerialPort(string port) try if (sp.IsOpen) return true; else sp.PortName = port; sp.Open(); sp.Close(); return true; catch (Exception ex) return false; (4)打开串口并测试是否被占用private void OpenSerialPort(string port) try if (sp.IsOpen) MessageBox.Show(串口 + port

44、 + 正在使用!请先关闭!); return; sp.PortName = port; sp.Open(); MessageBox.Show(串口 + port + 打开成功!); catch (Exception ex) MessageBox.Show(串口 + port + 打开失败! + ex.Message); (5)关闭串口private void CloseSerialPort(string port) try if (sp.IsOpen) sp.Close(); MessageBox.Show(串口 + port + 关闭成功!); catch (Exception ex) Me

45、ssageBox.Show(串口 + port + 关闭失败! + ex.Message); (6)发送信息到串行端口并进行数据格式转换private bool SendToSerialPort(string msg) if (sp.IsOpen) byte b; if (checkBoxHex.Checked) b = HexStringToByteArray(msg); else b = System.Text.Encoding.UTF8.GetBytes(msg); sp.Write(b, 0, b.Length); return true; else MessageBox.Show(串

46、口尚未打开!); return false; /16进制字符串直接转换为byte private byte HexStringToByteArray(string hexstr) byte b = new bytehexstr.Length / 2; for (int i = 0; i hexstr.Length; i += 2) bi = Convert.ToByte(hexstr.Substring(i, 2), 16); return b; (7)接收信息并学习private void sp_DataReceived(object sender, System.IO.Ports.Seri

47、alDataReceivedEventArgs e) byte readBuffer = new byte1; sp.Read(readBuffer, 0, 1); string res = ; for (int i = 0; i readBuffer.Length; i+) res = Convert.ToString(readBufferi, 16); if (_islearning) if (res = 0) MessageBox.Show(恭喜!学习成功!); else MessageBox.Show(学习失败!请重试!); this.Invoke(interfaceUpdateHan

48、dle, new string res ); 大连东软信息学院毕业设计(论文)第4章项目成果4.1硬件成果物收发模块如图4.1所示。图4.1 收发模块4.2软件成果物1.主界面。效果如图4.2所示。图4.2 收发模块2新建一个规则。效果如图4.3所示。图4.3 新建一个规则3.保存这个规则。效果如图4.4所示。图4.4 保存这个规则4.打开一个规则。效果如图4.5所示。图4.5 打开一个规则5.准备学习规则。效果如图4.6所示。图4.6 准备学习规则6开始学习规则。效果如图4.7所示。图4.7开始学习规则7.学习成功后可以修改按键名称。效果如图4.8所示。图4.8 修改按键名称8.停止学习后可以进行控制操作。效果如图4.9所示。图4.9 停止学习9.按相应按键即可实现遥控操作。效果如图4.10所示。图4.10 按键第5章结 论通过本次课程设计较系统的掌握了有关红外遥控,串口通信的设计

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论