单片机MSP430与PC机串口通讯设计说明_第1页
单片机MSP430与PC机串口通讯设计说明_第2页
单片机MSP430与PC机串口通讯设计说明_第3页
单片机MSP430与PC机串口通讯设计说明_第4页
单片机MSP430与PC机串口通讯设计说明_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、单片机MSP430与PC机串行通信设计概括在多机通讯的分布式控制系统中,通过PC机的串口与多台单片机通讯最为方便。在这样的分布式控制系统中,单片机与微机之间的多路通信是整个系统的关键。基于MSP430系列单片机的优越性能和超低功耗,430F利用MSP149的USART可以实现这种分布式多机通信功能。在解决了与PC串口或其他带串口的终端连接所需的串口电平转换和逻辑关系后,选择430FMSP 149的异步方式UART,用C语言完成下位机的数据收发程序(PC),借助VC+6.0开发平台和PComm软件包,完成上位机(MCU)的通信程序。美国TI公司新一代16位Flash型MSP 430F149系列M

2、CU的结构、特点和功能。本文详细介绍了如何使用VC + 6.0编写串口通信程序,重点介绍如何使用该方法实现异步通信。关键词:MSP430系列MCU,多路通信,控制系统,异步模式,P c ommMSP 430F149与PC机的串行通讯设计在多台计算机相互通信的分布式控制系统中,通过PC机串接多台单片机进行通信是最方便的。在这种分布式控制系统中,单片机之间的各种通信芯片机和微型计算机是整个关键。根据MSP430的低性能消耗和完善的功能, MSP 149430F系统中使用的USART可以实现这种单对群的功能。需要解决电压转换和逻辑关系的变化,当MSP430与PC机串接或其它带串接的终端,我们可以选用

3、MSP 430F149的异步模块(UART),用C语言完成MSP430F149的主处理器,并写出PC的处理器请求。寻求 VC+6.0 和 P c omm 的帮助。本文介绍了德州仪器MSP 430F149系列新一代16位闪存型微控制器的结构、原理和特点。同时还介绍了PC机与MSP 430F149进行串口通信的方法。介绍了如何使用VC+6.0设计串口通信程序,特别是调用PC omm函数控制串口传输数据。 .关键词: MSP 430F149单片机,串行通讯,控制系统,UART,PComm目录TOC o 1-3 h z u HYPERLINK l _Toc170051954 摘要 PAGEREF _T

4、oc170051954 h 1 HYPERLINK l _Toc170051955 摘要 PAGEREF _Toc170051955 h 2 HYPERLINK l _Toc170051956 目录 PAGEREF _Toc170051956 h 3 HYPERLINK l _Toc170051957 前言 PAGEREF _Toc170051957 h 6 HYPERLINK l _Toc170051958 第一章 系统组成及串行通信原理 PAGEREF _Toc170051958 h 7 HYPERLINK l _Toc170051959 1.1系统组成和通信原理 PAGEREF _Toc

5、170051959 h 7 HYPERLINK l _Toc170051960 1.1.1系统组成 PAGEREF _Toc170051960 h 7 HYPERLINK l _Toc170051961 1.1.2通信原理和协议 PAGEREF _Toc170051961 h 9 HYPERLINK l _Toc170051964 第二章硬件电路设计 PAGEREF _Toc170051964 h 14 HYPERLINK l _Toc170051965 2.1接口级电路设计 PAGEREF _Toc170051965 h 14 HYPERLINK l _Toc170051966 2.1.1

6、RS-232接口电路设计 PAGEREF _Toc170051966 h 14 HYPERLINK l _Toc170051967 2.2 MCU电路设计 PAGEREF _Toc170051967 h 17 HYPERLINK l _Toc170051968 2.2.1 MCU电路设计图 PAGEREF _Toc170051968 h 17 HYPERLINK l _Toc170051969 第 3 章 软件设计 PAGEREF _Toc170051969 h 19 HYPERLINK l _Toc170051970 3.1功能描述 PAGEREF _Toc170051970 h 19 HY

7、PERLINK l _Toc170051971 3.1.1上位机和下位机实现的功能 PAGEREF _Toc170051971 h 19 HYPERLINK l _Toc170051972 一、功能说明: PAGEREF _Toc170051972 h 19 HYPERLINK l _Toc170051973 3.2编程 PAGEREF _Toc170051973 h 19 HYPERLINK l _Toc170051974 3.2.1下位机编程 PAGEREF _Toc170051974 h 19 HYPERLINK l _Toc170051993 3.2.2上位机( PC )程序设计 PA

8、GEREF _Toc170051993 h 28 HYPERLINK l _Toc170051996 结论 PAGEREF _Toc170051996 h 34 HYPERLINK l _Toc170051997 参考文献 PAGEREF _Toc170051997 h 36前言在工业控制领域,有很多由多个单片机组成的系统,如大型测控系统、大型车辆控制系统、机器人控制系统等。在这些应用中,单片机往往只负责对某一点或某一子系统的监控,而对整个系统中的各个点的监控或各个子系统的协调控制则由更强大的中央处理器来完成。 PC 等设备。 .数据传输距离可能很近(几米),也可能很远(几公里)。多机系统的数

9、据交换可以采用并行通信或串行通信,构成多MCU系统的关键技术是多MCU之间的通信方式1 。由于串行通信是在一条传输线上逐位传输信息,所以它使用的传输线较少,可以使用现成的网络进行数据传输,因此特别适用于远距离传输,因此串行通信在计算机控制系统中得到广泛应用.应用程序。MSP430系列单片机是一种超低功耗混合信号控制器,广泛应用于控制系统和数据采集系统。 1MIPS(100万/秒)远远超出传统51单片机的能力范围,使得该系列单片机采用C语言开发效率高,从而提高了开发周期,实现了程序的可移植性; MSP430系列单片机性能超强。具有低功耗的特点,具有多种省电模式。 6m的快速启动时间可以延长待机时

10、间,使启动更快,使得系统功耗极小,适合未来社会对低功耗系统的要求。 2 ;此外,MSP430系列单片机系统功能稳定。波特率发生器中的预分频器/分频器和稳压器的组合使得MSP430即使晶体频率不是波特率的整数倍。它可以正常工作,也可以使其通信协议工作在最大波特率。有了这项技术,即使使用手表晶体(32768Hz),波特率也可以达到4800和9600 。本设计基于MSP 430F149实现分布式控制系统中的串行通信问题。为了在硬件上与PC串口或其他带有串口的终端设备连接,需要对EIA-RS- 232 - C和MSP430之间的电平和逻辑关系进行转换。本设计采用MAX32 21芯片完成3V 5V供电。

11、电平与串口电平的双向转换;而对于由多台单片机按照一定的连接形式组成的通信网络,它们之间必须通过常规的通信协议进行通信,才能完成所要实现的各种功能需求。本设计基于MSP 430F149的串行通信模块的组成,利用其异步通信方式的特点,按照位寻址的方式设计了一种简单的通信协议。计算机的 C+ 通信程序。第一章 系统组成及串行通信原理1.1 系统组成及通讯原理1.1.1系统组成MSP 430F149 功能介绍:本设计选用的主芯片为MSP 430F149 ,属于仪器公司的MSP 14X/16X FLASH系列。430F该系列是一组工业级超低功耗微控制器,工作环境温度为-40 +85 摄氏度工作电压范围1

12、.8 3.6V , MSP430微控制器之所以具有超低功耗是因为它降低了芯片的功耗。电源电压和灵活可控的工作时钟都是独一无二的。凭借 16 位 RISC (精简指令集)结构、16 位寄存器和常量寄存器,MSP430 实现了最大的代码效率。数控振荡器能够在不到 6ms 的时间内从所有低功耗模式快速唤醒到活动模式。 MSP 430F149具有很高的处理速度,指令周期为 125 ns,由 8MHz 晶振驱动。此外,它还具有两个 16 位定时器(带看门狗功能)、一个极快的 8 通道 12 位 A/D 转换器(ADC)(带部分参考电压、采样保持和自动扫描功能)、一个部分比较器2个通用同步/异步发送接收器

13、,48个I/O口(均可独立控制)微处理器结构。硬件乘法器提高了单片机的性能,使单片机在编码和硬件上兼容3 。这些特性确保可以编译高效的源程序。2.系统组成一、系统框图系统组成如图1-1所示,由上位机(即工控机)、通讯接口和下位机组成。上位机为工控机,智能终端由单片机MSP 430F149和外围传感器放大电路组成(本设计部门参与本部分设计) 。单片机与PC机的通信方式为串行异步方式(UART)。下位机采用中断方式与上位机交换数据。如果单片机MSP430要与PC机串口或其他带串口的终端设备连接,接口电路部分必须进行EIA-RS-232 -C与MSP430之间电平和逻辑关系的转换4 。本设计将使用M

14、AX3221芯片完成3V 5V电平与串口电平的双向转换。图 1-1 系统框图1.1.2通信原理和协议1、MSP430的串行通信模块(USART)由于本设计解决了串行通信的问题,所以通信的基本原理是利用MSP430的串行通信模块(USART)实现单片机与PC机的串行通信。一、USART的硬件组成:SP 430F169 主要是实现对外通信。它可以实现异步通信(UART)和同步通信(SPI)的功能5 。图 1-2 是 USART 的通讯模块。由图1-2可知,USART模块由波特率部分、接收部分、发送部分和端口IO部分组成。 USART接收部分包括接收寄存器、接收移位寄存器和控制模块,它们在接收信息时

15、产生一些状态信息,并设置相应的中断标志位。 USART的发送部分包括发送寄存器、发送移位寄存器和控制模块,发送时会产生一些状态信息,并可以设置发送中断标志位。 USART的波特率产生部分主要包括时钟的选择。波特率产生由波特率调整部分组成。它通过设置波特率寄存器和波特率调整寄存器来获得所需的波特率。 USART包含一个控制模块,通过它可以选择相应的工作模式,同时可以设置相应的引脚,如异步和同步工作模式的选择、奇偶校验位和停止位的个数等. 所有的设置都是通过操作来实现的 这个模块的寄存器。对于不同系列的 MSP 微控制器USA,可能有一个或两个 RT 模块,而 MSP 430F149 有两个,分别

16、是 USART0 和 USART1。图 1-2 USART 模块组成2、USART的控制寄存器及工作模式USART 的控制寄存器是它的八个寄存器之一。表 1-1 是其位的格式。表 1-1 控制寄存器笔电电动汽车SP字符听同步毫米SWRSTUSART 的控制寄存器有 8 个有效控制位。通过设置这些控制位,可以选择工作模式、通信协议、奇偶校验位等。用户对 USART 的所有操作都是通过操纵该寄存器的控制位来完成的6 。下面是各个位的简单功能说明。了解这些控制位的作用有助于我们以后进行硬件连接和软件设计。PENV:检查使能位。该位为0时,不允许校验;为1时,允许校验,发送时生成校验位,接收时期望接收

17、校验位。地址位多机模式下的奇偶校验计算中包含地址位。PEV:奇偶校验位。为0时进行奇校验,为1时进行偶校验。SP:停止位。接收时只有一个停止位。发送时,该位为0,只有一位停止位;当该位为 1 时,有两个停止位。CHAR:字符长度位。当该位为 0 时,表示发送的数据为 7 位。当该位为 1 时,表示发送的数据为 7 位。发送的数据为 8 位。LISTEN:监听使能位。该位为0时,无反馈;当该位为1时,有反馈,将发送的数据发送到接收端,可以进行自环测试。SYNC:该位为0时,USART处于异步通信(UART)模式;该位为 1 时,USART 处于同步通信 (SPI) 模式。MM:多机模式选择。该位

18、为0时,多机模式选择线路空闲多机协议;该位为 1 时,多机模式选择地址位多机协议。SWRST:软件复位使能位。也称为控制位。该位影响其他控制位和状态位的状态。在使用串口的过程中,这个位比较重要。 USART模块的正确初始化应该是这样的:首先,当SWRST=1时设置串口;然后设置 SWRST=0;最后,如果使用了中断,则设置相应的中断使能。该位为 0 时:使能 USART 模块。当该位为 1 时:如果该位被置位,USART 状态机和操作标志都被初始化为复位状态(URXIFG=URXIE=UTXIE=0,UTXIFG=1);同时,受影响的逻辑位保持复位状态,直到 SWRST 位复位。这意味着当系统

19、复位时,只能通过复位SWRST位来重新启用USART功能;但接收和发送标志 URXE 和 UTXE 不受 SWRST 控制位的影响。2. 沟通1. 异步模式(UART)的选择MSP149430F微控制器支持两种不同的串行协议,异步通信 ( UART ) 协议和同步通信 ( SPI )协议。这两种协议的选择由控制寄存器7中的 SYNC 位决定。本设计主要利用MSP430的异步通信(UART)方式原理实现单片机与PC机的串行通信。MSP430控制寄存器决定了 USART 的基本操作。异步模式(UART)的选择需要通过设置SYNC=0来实现;本设计中其他控制位的设置包括:设置CHAR=1,选择字符长

20、度为8位;设置SP=0,选择1个停止位;设置PEV=0,选择奇校验;设置MM=1,地址位选择多机模式协议。控制位的选择基本上决定了系统的通信方式和通信格式。二、UART模块特点由于 MSP430 微控制器有两个 UART:串口 0 和串口 1,因此很容易实现两个串口之间的通信。只需要设置相应的寄存器就可以使串口工作。两个串口都使用中断方式。当收到数据时,置位标志通知主程序有数据来,当主程序有几局要发送时,置位中断标志进入中断发送数据。本设计选择串口1与上位机通信。在异步模式下,接收部分自己实现帧的同步,通信双方只需要使用相同的波特率即可。异步模式的帧格式由 1 个起始位、7 个或 8 个数据位

21、、奇偶校验位、1 个地址位和 1 个或 2 个停止位组成。在异步模式下,MSP430 支持两种多机模式:线路空闲多机模式和地址位多机模式。在线路空闲模式下,数据块除以一段空闲时间。字符第一个停止位后收到超过10个1,表示检测到线路空闲;如果使用了两个停止位,则第二个停止位被认为是空闲周期的第一个信号。使用地址位多机模式时,字符中包含一个附加位作为地址标识符,数据块的第一个字符设置了地址位,表示该字符是地址。由于控制寄存器中已设置MM=1,因此本设计选择地址位多机模式。以下是 UART 通信的一些特性:(1)异步通信方式,包括线路空闲/地址位通信协议。(2)有两个独立的移位寄存器,输入/输出移位

22、寄存器。(3)、传输7位或8位数据,可以使用奇偶校验或无校验。(4)可编程波特率调整。(5)、发送和接收分开中断。(6)有效检测低功耗唤醒的起始位。(7)状态标志检测错误或地址位。3、基本通讯协议:在PC机与多台单片机的通信中,确定一个清晰合理的通信协议是关键,包括数据格式、通信方式、传输速度、传输步骤、检错和纠错方式、定义控制字符。规定6 。由于选择了UART的多机通信方式,为了区分不同的扩展,必须为每个扩展分配一个唯一的地址,从而唯一区分每个单片机。数据格式采用数据包的形式,一次传输一组数据。报文格式如表1-2所示:表 1-2 数据包格式开始标志下位机地址操作指令数据长度数据内容总和检查结

23、束标志开始标志:1个字节扩展地址:1字节命令/数据:1字节数据长度:1字节数据容量:n字节和校验:2字节结束标志位:1字节数据格式中的地址位代表与 PC 通信的微控制器的地址。操作指令表示在本次通信中要完成的操作。单片机发送上位机接收时,协议规定命令FFH为上报数据。此时数据包中的数据长度、数据内容、校验三个字段填入实际发送数据个数、数据和校验和;命令 F0H - F3H 表示从微控制器到 PC 的反馈信息。此时,数据包中的数据长度、数据内容和检查字段为空。指令为F0H时,表示接收成功,F1H表示接收失败,需要重传。 F2H表示单片机有数据上报要求,F3H表示单片机无数据上报要求。当 PC 发

24、送和接收来自微控制器的操作命令字段也有类似的协议规定。第二章硬件电路设计2.1 接口级电路设计 2.1.1RS-232接口电路设计RS-232 电气标准一、RS-232的基本电气要求与 PC 进行串行通信时,需要进行EIA-RS-232逻辑电平转换。 EIA-RS-232是美国电子工业协会(EIA)制定的串行通信协议。 “C”代表标准修订版的修订版。其信号电平采用负逻辑, 1”“逻辑”电平为-5V -15V。“逻辑”电平为+5V 0” +15V,因为它有2V的噪声容限,所以最终限位接收器可以识别信号低至+3V为逻辑0”“1”,信号高至-3V为逻辑“1” 8 。因此,在实际工作中,应保证电平在(

25、315)V之间。最大S-232-C的传输速率为20kb/s,最大直连长度为15m.2、RS-232通用接口RS-232-C标准接口有25条线:4条数据线、11条控制线、3条定时线、7条备用和未定义线。其中,常用的只有9个,分别是:(1) 6个接点控制信号线:数据设备就绪(Data set ready-DSR)-有效(ON)状态,表示MODEM处于可以使用的状态。数据终端就绪(Data set ready-DTR)有效(ON)状态,表示数据终端可以使用。请求发送(Request to send-RTS)用于表示DTE请求DCE发送数据,即终端要发送数据时,信号使能(ON状态)。清除发送(Clea

26、r to send-CTS)用于表示DCE准备好接收来自DTE的数据,是对请求发送信号RTS的响应信号。当信号有效时,通知终端开始沿发送数据线TxD发送数据。接收线路信号检测(Received Line Detection-RLSD)用于指示DCE已经连接到通信链路,并通知DTE准备好接收数据。这条线也称为数据载波检测(Data Carrier dectection-DCD)线。振铃指示 (Ringing-RI) - 该信号有效(ON 状态)以通知终端它已被呼叫。控制信号线有效和无效的先后顺序表示接口信号的传输过程。例如,只有当 DSR 和 DTR 都处于活动 (ON) 状态时,才能在 DTE

27、 和 DCE 之间进行传输操作。如果DTE要发送数据,应提前将DTR线设置为有效(ON)状态,CTS线收到有效(ON)状态回复后,才能在TxD线上发送串口数据。这种排序对于半双工通信线路特别有用,因为半双工通信可以确定DCE已经从接收方向变为发送方向,然后线路就可以开始发送了(2) 2条数据收发线:Transmitted data (Transmitted data-TxD) - 串行数据已通过 TxD 终端传输。接收数据(Received data-RxD) - 通过 RxD 线路终端从 PC 接收串行数据,(DCEDTE)。(3) 一根地线信号地 - SG,无方向。2.接口电路设计RS-2

28、32接口电路根据需要有三线、六线、八线、两线连接方式。当通信速率较低时,可以采用三线连接方式,如图 2-2 所示。图 2-1 RS-232 电缆连接图在本设计中,采用MAX3221芯片对MSP430中USART的信号进行电平转换后输出到PC机,将PC机的信号发送到USART。设计中的RS-232接口电路如图2-2所示。节目:图 2-2 RS-232 接口电路图在图 2-2 中,DB9 是我们选择的 RS-232 连接器9 针串口,其针脚对应 RS-232-C 标准接口的 9 条常用线。对应关系见表2-1 9 。表2-1 9针串口插头对应表DB9 针数引脚功能说明标记1接收线信号检测DCD2接收

29、数据研发3发送数据运输署4数据终端就绪DTR5信号地SG6数据传输设备就绪DSR7请求发送即时战略8允许发送中旅9振铃指示RI从图2-2和表2-1可知,接收使能EN接地,时钟有效;掉电模式控制引脚FORCEOFF始终拉高,即MAX3221始终处于工作状态。 USART的TXD引脚(本设计选择UART1)接MAX3221的11引脚(DIN),USART的RXD引脚接MAX3221的9引脚(ROUT);接口的13脚(DOUT)输出到J5的2脚(DB9)(DB9的2脚为串口的RXD脚),3脚(串口的TXD脚) )接口J5(DB9)与MAX3221的8脚(RIN)相连,这种连接方式将USART的输出脚

30、TXD(本设计中UART1的P3.6脚)和输入脚RXD(本设计中UART1的P3.7管脚),可通过延长线机连接直接与PC相连。2.2单片机电路设计2.2.1单片机电路设计图单片机电路比较简单。在与接口电路连接的基础上,利用单片机通用I/O接口实现与其他电路的连接。因为是多通道通信,所以各个通道的硬件设计基本相同。下面是单片机的电路图。图2-3 单片机部分电路图从图2-3可以看出,单片机的时钟设计与其他单片机不同。 MSP 430F149单片机采用两个时钟输入,一个32KHZ时钟信号,一个8MHZ时钟信号。系统时钟 信号全部由晶振实现。考虑到电源的输入纹波对单片机的影响,在电源的管脚上加了一个0

31、.1F的电容来实现滤波,以减少对输入端的干扰。另外,单片机还有模拟电源的输入端,所以这里需要考虑干扰问题。本系统的干扰比较小,所以模拟地和数字地共用一个地,在模拟电源的输入端加了一个滤波电容来降低干扰10 。第三章软件设计3.1 功能说明3.1.1上位机和下位机实现的功能一、功能说明:1.上位机功能(1) 调用下位机,然后发送字符串,最后发送结束标志(2) 按一定的时间间隔读取串口,如果有数据要接收,则数据接收。2.下位机功能(1)接收功能:识别上位机发送的地址,如果地址匹配则接收数据,直到结束符到来才停止接收。(2)发送功能:当下位机有数据要发送时,先将本地地址发送给上位机,再发送数据,最后

32、发送结束标志。3.2 编程低级3.2.1计算机编程一、下位机的通讯协议分布式控制系统中下位机的每台单片机都有唯一的地址。通讯开始时,PC首先调用被叫单片机的地址。单片机收到PC的调用后,首先判断是否是自己的地址,如果不是则忽略。如果是,则发送呼叫响应信号,并根据上位机的命令进行相应的接收或发送。根据以上需求,为了与UART通信,下位机的通信协议可以设置如下:表 3-1 下位机通讯协议格式地址数据结束地址:取值为1-8,即上位机可以调用的8个下位机之一,发送时地址位有效。II可以显示的字符。结束:0。二、下位机程序流程图下位机(MCU)的编程包括初始化设计、串口中断服务设计和主处理程序设计。本例

33、中虽然有多台下位机,但除了本地地址设置外,硬件电路相同,因此各下位机的软件设计也是相同的。根据通信协议的要求,下位机的程序流程可设计成如图3-1所示。图 3-1 下位机(MCU)主程序流程图3.初始化设置初始化设置包括时钟初始化、端口初始化和串口初始化。一、时钟初始化流程及说明:#include #包括“UART.h”无效初始化时钟(无效)无符号整数 i;BCSCTL1 = 0X00; /清除寄存器内容/XT2振荡器开启/LFTX1工作在低频模式/ACLK的分频因子为1做IFG1&=OFFG; / 清除 OSCFault 标志for(i=0 x20;i0; i -);而(IFG1 & OFIF

34、G) = OFIFG); / 如果 OSCFault =1 BCSCTL2=0 x00; /将寄存器内容清零BCSCTL2 += SELM1; /MCLK的时钟源为TX2CLK,分频因子为1BCSCTL2 += SELS; /SMCLK的时钟源为TX2CLK,分频因子为1由上述程序可知,只要将BCSCTL1和BCSCTL2寄存器的相应位置位,就可以获得所需的MCLK、SMCLK、ACLK时钟信号。2.端口初始化无效初始化端口(无效)/在初始化期间将所有引脚设置为输入模式P3DIR = 0;/设置所有管脚为通用I/O口P3SEL = 0;返回;上述初始化过程将 P3 端口初始化为通用 I/O 接

35、口。3.串口初始化由于串口 1(UART1)的管脚号为 P3.6 和 P3.7,因此端口初始化只是将端口设置为通用 I/O 接口。在本设计中,P3.6 和 P3.7 需要作为 UART 的输出和输入引脚,所以这里需要额外初始化。UART1的初始化程序代码为:,无效初始化_UART1(无效)U1CTL = 0X00; /清除寄存器内容UCTL1&=SWRST; /SWRDT复位,UART使能UCTL1=CHAR+MM; /8个数据位,1个停止位,地址位模式URCTL1 | =URXWIE; /只有地址字符集URXIFGUBR0_1 = 0X 03 ;UBR1_1 = 0X00;UMCTL_1 =

36、 0X 4A; /使用32KHz晶振时,波特率为9600bpsU1TCTL =0 x10 ; /选择ACLK(32KHz晶振)作为时钟源ME2 |= UTXE1 + URXE1; /使能UART1的TXD和RXDIE2 |= URXIE1; /使能UART1的RX中断IE2 |= UTXIE1; /使能UART1的TX中断P3SEL |= BIT6; /设置P3.6为UART1的TXDP3SEL |= BIT7; /设置P3.7为UART1的RXDP3DIR |= BIT6; /P3.6为输出引脚返回;以上程序根据硬件设置的要求,设置串口1的参数,如8个数据位,1个停止位,地址位多机模式波特率

37、发生器选择ACLK,波特率9600波特/秒等. ,设置P3.6和P3.7为串口1的I/O管脚。4.串口中断服务程序串口以中断方式接收和发送。在设计单片机的通信程序时,必须充分利用单片机的效率。由于单片机多用于实时性强的控制场合,因此应优先考虑对控制对象的时间和动作的响应。考虑将通信等辅助操作占用的 CPU 时间最小化的位置11 。基于以上考虑,在设计单片机的通信程序时,中断程序分为接收中断服务程序和发送中断服务程序两部分。下面是串口通信程序的流程图:图 3-2 串口通讯模块程序流程图1.接收中断服务程序当接收到数据时,设置一个标志,通知主程序有数据来,当地址位校验无误时,开始接收数据。以下是接

38、收中断处理程序代码:中断 UART1RX_VECTOR 无效 UART1_RX_ISR(无效)if(URCTL1&URXWIE) /作为地址模式接收时等待正确的地址出现if(URBUF_1=ADDRESS) /地址正确,将接收方式改为数据,准备接收URCTL1&=URXWIE;nRX1_Len_temp = 0;else /作为数据接收时UART1_RX_BUFnRX1_Len_temp = RXBUF1;/数据存入UART1_RX_BUFnRX1_Len_temp += 1;if(UART1_RX_BUFnRX1_Len_temp + = 0 ) /是否到达停止位 nRX1_Len = nR

39、X1_Len_temp; nRev_UART1 = 1; /设置标志通知主程序nRX1_Len_temp = 0;URCTL1 | =URXWIE; /接收到数据后切换到地址模式对于接收中断,程序处于等待状态。当有数据来自外部时,触发接收,进入接收中断服务程序。当地址校验正确启动后面的数据时,中断1”从“RxBUF寄存器”中读取数据,并将读取的数据放入“UART1_RX_BUF ”全局缓冲区,设置标志“nRev_UART”1”后通知主程序接收数据,完成后等待下一个中断的到来。接收中断服务程序包括地址位匹配的验证。2.发送中断服务程序当主程序有数据要发送时,设置中断标志进入中断,发送数据。以下是

40、程序代码:中断 UART1TX_VECTOR 无效 UART1_TX_ISR(无效)如果(nTX1_Len != 0) nTX1_Flag = 0; / 表示缓冲区中的数据还没有发送TXBUF1=0 x01; /先写地址字符TXBUF1 = UART1_TX_BUFnSend_TX1; /开始传输数据 nSend_TX1 += 1; if(nSend_TX1 = nTX1_Len) /数据是否已经发送 nSend_TX1 = 0; nTX1_Len = 0; nTX1_Flag = 1; /缓冲区中没有数据要发送 对于发送中断,程序一般处于禁止等待状态。只有当单片机的发送缓冲区需要发送数据,并

41、且发送中断设置为允许模式时,发送中断才会开始工作。发送时,从缓冲区发送数据,遵循通信协议:先发送地址位,再发送要发送的数据,最后发送校验和和结束标志。在发送中断服务程序中,数据从“UART1_TX_BUF ”的全局缓冲区中取出并发送到“TXBUF1”寄存器进行发送。发送结束后,发送中断服务程序等待下一个中断的到来。以上两个程序可以看出中断的使用结构很好。只要在中断服务程序中接收和发送数据,然后与主程序进行数据交换,就很容易实现多任务操作,充分利用单片机资源。五、主要加工程序主要处理程序包括初始化、设置串口工作模式、处理接收到的数据以封装待发送的数据。下面是它的程序代码。#include #in

42、clude sp3220.h/定义串口操作变量字符 nRev_UART1; /接收串口1的标志字符 UART1_TX_BUF60; / 串口1的发送缓冲区字符 UART1_RX_BUF60; / 串口1的接收缓冲区诠释 nTX1_Len;字符 nRX1_Len;字符 nRX1_Len_temp;字符 nTX1_Flag;诠释 nSend_TX1;无效主要(无效)诠释nRes_UART1;诠释 nRes = 0;字符 UART1_RX_Temp60;诠释我;诠释n;WDTCTL = WDTPW + WDTHOLD; / 禁用看门狗_DINT(); /禁用中断初始化时钟(); /初始化时钟初始化端

43、口(); /初始化端口初始化_UART1(); /初始化串口1_EINT(); / 启用中断for(;) / 进入处理循环 if(nRev_UART1 = 1) /如果有接收中断nRev_UART1 = 0;for(i = 0;i nRX1_Len;i+)UART1_RX_Tempi = UART1_RX_BUFi; / 将接收到的数据复制到临时缓冲区。nRes = ProcessCMD(UART1_RX_Temp,nRX1_Len);开关(nRes)情况1:UART1_TX_BUF0 = O;UART1_TX_BUF1 = K;UART1_TX_BUF2 = 13; nTX1_Len = 3

44、;/ 设置中断标志并进入发送中断程序IFG2 |= UTXIFG1; nRX1_Len = 0;休息;案例2:for(n = 0;n nRX1_Len;n+)UART1_TX_BUFn = UART1_RX_Tempn; UART1_TX_BUFnRX1_Len = O; UART1_TX_BUFnRX1_Len+1 = K; UART1_TX_BUFnRX1_Len+2 = 13; nTX1_Len = nRX1_Len + 3;/ 设置中断标志并进入发送中断程序IFG2 |= UTXIFG1; nRX1_Len = 0;休息;情况1:UART1_TX_BUF0 = E;UART1_TX_B

45、UF1 = R;UART1_TX_BUF2 = R;UART1_TX_BUF3 = O;UART1_TX_BUF4 = R;UART1_TX_BUF5 = 13; nTX1_Len = 6;/ 设置中断标志并进入发送中断程序IFG2 |= UTXIFG1; nRX1_Len = 0;休息;上述程序中,主要根据“ ProcessCMD(UART1_RX_Temp,nRX1_Len) ”对得到的结果进行处理,并将响应数据发送给PC。如果接收到的数据错误,则发送“ERROR”。数据封装完成后,设置“nTx1_Len ”的长度,并通过“ IFG2 |= UTXIFG1; ”发送中断,以便中断处理程序发

46、送数据。上述程序中,“ ProcessCMD(UART1_RX_Temp,nRX1_Len) ”主要对接收到的数据进行处理,并返回相应的代码供主程序处理。这个函数的具体代码是:int ProcessCMD(char pBuf,int nLen)诠释 nTemp = -1;诠释我;如果(nLen 0)sio-关闭(端口);休息; /如果接收到数据,关闭串口,跳出循环别的; /如果没有接收到数据,再次向串口发送数据,再次查询接收。以上只是一个简单的收发程序。在实际应用中,可以根据实现功能的不同,设计出更复杂、更具可操作性的程序。综上所述串行通讯口在系统控制领域一直占有重要地位。不仅没有因为时代的进

47、步而被淘汰,反而在规格上越来越完善,应用越来越广泛。串行通信作为一种基本、灵活、方便的通信方式,广泛应用于PC机与PC机之间或PC机与单片机之间的数据交换,用于其他工业控制和自动控制20 。本设计为分布式控制系统中上位机与下位单片机(MSP 430F149)之间的异步串行通信提供了一种解决方案,实现了上位机向多台(最多8台)下位机发送信息进行通信。下位机接收上位机的数据,可以将数据发送给上位机。该设计方案在实际运行过程中简单方便,稳定可靠,较好地解决了上位机与下位机之间的通讯问题。本设计采用PCOMM开发上位机通信程序,具有很大的优势。虽然上位机的编程方式有很多种,包括DOS系统下的C语言和汇

48、编,但使用Windows API通讯函数或VC标准通讯函数_inp、_inpw、_inpd、_outp、_outpw、_outpd直接操作串口Windows系统下的端口。 ,或使用 Microsoft Visual C+ 通信控件 (MSComm) 与第三方编写的通信类进行通信。但是,这些方法过于复杂,对程序员的要求很高,而且不是很可靠。 PCOMM 是第三方专门为串行通信编写的应用工具包。与其他方法相比,PComm 具有易于开发、易于故障排除、兼容性高的特点。另外,PComm提供了很多基于API函数的命令集来处理串口通信,可用于Visual C+、Visual Basic、Delpi5.0等

49、,可在此类开发工具下使用,具有以下特点:传输速度快,使用灵活方便,用户编写的代码少,可满足复杂情况下的串行通信需求。本设计使用的接口电路的RS-232-C标准最初是由电信连接数据终端设备DTE(Data Terminal Equipment)和数据通信设备DCE(Data Communication Equipment)制定的。本标准的制定没有考虑计算机系统的应用要求。但现在它被广泛用于计算机(更准确地说是计算机接口)与终端或外围设备之间的近端连接标准。 RS-232-C标准规定驱动器允许有2500pF的容性负载,通信距离会受到这个电容的限制9 。例如,使用150pF/m的通讯电缆时,最大通讯

50、距离为15m;减少,可以增加通信距离。传输距离短的另一个原因是RS-232是单端信号传输,存在共地噪声、无法抑制共模干扰等问题,所以一般用于20m通信。如果PC机要进行更进一步的终端控制,则需要将接口电路更换为其他标准,如RS-485总线标准,其通信距离从几十米到几千米不等。由于RS-485采用平衡发射和差分接收,具有抑制共模干扰的能力,再加上总线收发器的高灵敏度,可以检测低至200mV的电压,因此传输信号可以在几公里外恢复。但是,RS-485采用半双工工作方式,任何时候只有一个点处于发射状态,所以如果要设计一个全双工的长距离通信系统,接口电路的设计需要采用其他更复杂或更昂贵的方法。另外,本机

51、无法实现下位机与下位机的直接通信,下位机与下位机之间的数据交换只能通过上位机的传输来实现。参考1宗光华,大寨多芯片系统应用技术。国防工业,2003:1-212 朱海军,景岚微控制器及其在控制系统中的应用。电子元器件的应用, 2004 ,(1):39-423 胡大可 MSP430系列超低功耗16位单片机原理及应用。 :航空航天大学, 20024小龙 MSP430系列微控制器接口技术和系统设计示例。 : 航空航天大学, 2002 : 210-2235建华,燕琴,翟晓舒 MSP430系列16位超低功耗微控制器原理与应用:清华大学, 20046 胡大可 MSP系列单片机的C语言编程与开发。:航空航天大

52、学, 2003 : 157-1787 长。 MSP430微控制器应用系统开发的典型例子。中国电力, 2005 : 120-131, 151-1698 科学技术,冼勇 Visual C+串行通信技术与工程实践(第二版)。人民邮电,2004:9 益智,李源 VisualBasic 与 RS-232 串行通讯控制.: 清华大学, 2002: 1-33,55-10510 刚,周群。电子系统设计与实践。电子工业,2004:11徐辉,荣辉使用PCOMM完成微机和单片机的高速数据传输和实时数据显示。仪器技术与传感器, 2003 , ( 4 ): 26-2812 穆林森,高霞,罗丽琼,奚宏宇。 Visual

53、C+6.0的使用与开发:清华大学,1998:13 丁展,海鹰 Visual C+ 网络通信编程实践案例精选。人民邮电,200414 贾光磊,裴宇多线程技术及其在串行通信中的应用。计算机工程, 2003,29(1):247-24915 吕松茂,振宇在 Windows 环境下使用 PComm 处理串行通信。计算机工程, 2001, 27(6): 176-17916 使用PComm开发PC与单片机的通信程序17凯特格雷戈里。 Visual C+6 开发手册。 : 机械工业, 1999:18 理查德 C.勒内克汤姆阿彻。 Visual C+6 集合。电子工业,2001:19 徐福,舒智,魏。 Visu

54、al C+ 编程技巧和示例。中国铁路,2003:20薄永冰.基于PComm的串行通信的实现。微机信息,2006,22(21):70-71,99在设计串口通信程序的时候,我的导师给了很多帮助,介绍了很多有价值的资料。实验室的老师也给予了很大的帮助,在此表示感谢。英文引文和翻译通用网络定时器的开发在 NSTX一个新的计时和同步系统组件,通用网络计时器 (UNT),正在国家球形环面实验 (NSTX) 中进行开发。UNT 是第二代多功能计时设备,它模拟了最初由各种 CAMAC 模块提供的计时功能和电气接口。使用现场可编程门阵列 (FPGA) 技术,UNT 的八个通道中的每一个都可以动态编程以模拟特定的

55、 CAMAC 模块类型。该定时器与现有的 NSTX 定时和同步系统兼容,但也将支持具有扩展性能的(未来)时钟系统。为了帮助系统设计人员和合作者,将编写软件将 UNT 与 EPICS、MDSplus 和 LabVIEW 集成。本文将描述 NSTX 通用网络定时器的计时能力、硬件设计、编程/软件支持以及当前状态。一、引言NSTX 研究的一个重要设施是中央计时和同步系统,用于同步整个 NSTX 实验综合体的控制和数据采集系统。大多数计时系统是使用 25 年的 CAMAC 技术构建的,该技术存在维护和性能问题。在过去几年中,NSTX 一直在开发一种基于 FPGA 的新核心时序组件。第一代设备被称为多功

56、能计时系统(MTS),它已成功部署在多个 NSTX 子系统上。本报告将描述 UNT 的显着特点,包括对硬件和软件的描述、当前状态和未来计划。二、审查 MTSMTS 旨在模拟过去由几种类型的 CAMAC 模块提供的各种实际计时功能和电气接口。该设备有六个通道,每个通道都可以动态编程以执行所需的计时功能。那里用户可以通过多种方式对时序通道进行编程:Windows DLL、VisualC+ GUI、LabVIEW 和 MDSPlus 或 EPICS(通过 LabVIEW)。 MTS PCI 板通常与其他数据一起安装在机架式 PC 中采集板,形成基于PC的控制和数据采集系统。(在美国能源部的赞助下,普

57、林斯顿等离子体物理实验室根据合同编号 DE-AC02-76-CH0-3073 进行的工作。 )A. 计时功能参考包含对 MTS 的计时功能和性能能力的更全面的描述。这些是 UNT 的主要特性:(1)八通道装置。(2)定时功能包括事件解码、延迟、触发器、门、时钟、脉冲计数。由软件或外部触发的定时功能信号。(3) 100 nS 时序分辨率。(4)链接上的 256 个事件代码。(5)支持 1 MHz 和 10 MHz 链路/载波。B. 增强的时钟功能MTS 与现有的 NSTX 时钟系统兼容,但它还将支持增强的(未来)时钟系统。附加功能包括:(1)基础(载波)频率从 1 MHz 升级到 10兆赫。(2

58、) 100 纳秒计时分辨率,而不是(最多)1毫秒。(3)光纤设备时钟端口。(4)附加事件解码,从 16 个事件增加到 256 个。三、 UNT系统设计MTS 的缺点之一是它的包装。它需要一台带有 PCI 总线插槽的计算机和一根连接到外部隔离电路板的电缆。尽管 PCI 总线目前是最流行的,但它已经在逐渐减少,以取代具有扩展性能的 PCI 总线。 MTS 的 PCI 总线要求是连接非 PCI 控制的障碍PLC、VME、CompactPCI、PC-104和PCI-X等系统技术。这给 NSTX 研究人员和合作者带来了一个问题,他们经常将现代和独特的系统集成到 NSTX 上。下一代计时设备的主要设计标准

59、是最大限度地提高产品的多功能性和使用寿命。经验表明,在融合设备的整个生命周期中,硬件和软件技术会经历几代的演变。在研究项目开始时流行且易于支持的东西在项目的后期变得昂贵且难以维护。行业标准和开放软件将用于最大限度地减少这些生命周期问题。UNT 基于两个最持久的国际标准。在物理上,该设备符合 IEC 60297 标准(19”机架安装设备)。用于编程和配置时序通道的通信采用 IEEE 802 标准(以太网)。此外,还将采用世界领先的工业以太网协议Modbus TCP/IP。大多数计算机、操作系统以及编程和脚本语言都可以访问网络。上述这些属性将延长 UNT 的使用寿命。A. MTS 的改进(1)系统

60、重新打包:o不再依赖于 PCI 总线技术。o取消了外部接口板和电缆。(2)该设备可通过网络进行编程。(3)通道数增加到8个。(4)支持光纤以及“铜”链路接口。(5)使用更大的 Xilinx FPGA(300,000 门版本)。(6)上电后,FPGA 会自动从 Flash 加载。(7)升级了接口电路。B. 网络问题由于 tcp/ip 协议的不可预测的延迟,在控制系统中使用 tcp/ip 网络通常是一个问题。在 UNT 应用程序中,网络延迟不会出现问题。网络的使用仅用于配置和状态,不需要实时功能。例如,网络用于配置通道解码链路事件,延迟指定时间,然后输出触发脉冲。此配置通常在预期实际链接事件到来之

温馨提示

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

评论

0/150

提交评论