菜单 English Ukrainian 俄语 主页

面向爱好者和专业人士的免费技术图书馆 免费技术库


无线电电子与电气工程百科全书
免费图书馆 / 无线电电子和电气设备方案

如何通过 RS-232 连接微控制器和计算机。 无线电电子电气工程百科全书

免费技术库

无线电电子与电气工程百科全书 / 微控制器

文章评论 文章评论

本文被设想为实现由个人计算机通过串行通道控制的微控制器设备的开发的示例。 它是为那些还没有此类开发经验的人准备的。 一旦您了解了 PC 如何控制微控制器、显示、处理和存储从其接收的信息,您就可以将这些知识应用到您自己的开发中。 另外,所描述的装置还有一个独立的价值:它是一个受控数字电压表,其测量结果在显示之前可以由计算机按照预定的算法进行处理,并保存在PC硬盘上的文件中。驱动、查看和打印。 所有这些使得所描述的设备成为用于收集、处理和记录数据的简单系统的基础,对于对微控制器技术缺乏独立开发知识的电子工程师来说非常有用。

介绍

这项工作的目的是开发和创建基于 x51 系列微控制器的最简单的测量设备,该系列至今仍然最常见,可以与个人计算机交换信息。 它应该在设备中实现一个电压表,随后可以补充各种前缀,将其他直接测量的物理量转换为电压。 这种设备可以很容易地进行一系列由计算机控制的测量,以及积累结果并进行计算机处理。 经过微小的改动,它可以很容易地变成一个用于远程监视和控制设备或其他仪器和装置的系统。

设备的一般描述。 设备的电气部分

该设备(图 1)实际上是一个数字电压表。 电压表的输入端是一个运算放大器(DA1),它具有高输入阻抗。 运算放大器后面是 ADC (DD2),它允许我们将感兴趣的电压数字化,以便随后传输到微控制器。 DD3 微控制器是该器件的主要控制元件,因为它从 ADC 读取信息并通过串行通道与个人计算机进行通信。 该器件还包括用于为数字部分生成 +5V 和为运算放大器生成 +/-10V 的电源转换器,以及电平转换芯片(逻辑 <0> 和 <1> 至 -15:+15 V,反之亦然)用于通过串行通道(例如 RS232)交换信息。

如何通过 RS-232 连接微控制器和计算机
米。 一

发送到计算机的值范围为 0...4095(对应于 ADC 位深度),0 对应于输入电平 0V,4095 - 电平 5V,相关性是线性的。

信息交换速率可以选择低于 9600 波特,也可以选择更高 - 高达 115 波特。 在相当老的计算机上,例如 200 及更早的计算机,上限要低得多 - 386 波特。 这是因为这些计算机中安装的串行端口芯片并不是为更高的速度而设计的。

芯片说明

MAX680电源转换器

运算放大器通常需要双极电源(例如,+10 V 和 -10 V 接地)。 对现代元件基础不太熟悉的无线电爱好者通常使用具有两个次级绕组(或具有一个,但中间有一个抽头)的变压器、两个滤波电容器、两个稳压器等来获得这样的电压。如果您可以使用的稳定电压为 5V,并且所使用的运算放大器(需要双极性电源)只需 +7:10 V,同时消耗 1:2 mA,那么提到的两个绕组和两个稳定器是不需要。 使用Maxim的MAX680芯片就足够了(注意此类芯片是Linear Technology等多家知名公司生产的)。

将 3:5 至 6:10 V 的电压 Uin(取决于类型)施加到微电路的输入;在其输出处生成约等于 +2Uin 的电压。 值得注意的是,首先,为了产生这些电压,除了 8 引脚 MAX680 或 LT1026 之外,只需要 4 个小型电解电容(见图 1),其次,当输入电压变化时,输出加倍相位变化,这对运算放大器的输出信号几乎没有影响。 有关此类微电路的更多详细信息,作者建议您参考相应的专有描述。

ADC MAX1241

近年来,在微控制器技术中,通过串行通道控制的微电路得到了广泛的发展。 12 位 ADC MAX1241 就是这些微电路之一。 与 MAX680 一样,MAX1241 有相当多的精确和近似类似物(Maxim 的 MAX187、Linear Technology 的 LTC1286、LTC1298、Analog Devices 的 AD7894 等)。

MAX1241采用8引脚封装,供电电压为2,7至5 V,消耗电流约为5 mA。 它需要使用外部参考电压源(本例中使用精密齐纳二极管 KR142EN19,产生 2,50 V 电压),并且仅使用 3 条线与微控制器进行通信。

MAX1241 的工作原理如图 2 所示的时序图所示。 1241. 在转换和交换之前,CS# MAX1241 输入必须由微控制器维持在单一状态。 要启动转换,必须向该输入施加逻辑零电平。 MAX8 中的转换过程只需不到 1241 µs。 在整个转换时间内,MAX0的DOUT输出保持逻辑1241电平,转换完成后,MAXXNUMX将DOUT输出设置为单一状态。

如何通过 RS-232 连接微控制器和计算机
米。 一

在开始转换之前,微控制器的 SCLK MAX1241 输入必须设置零逻辑电平。 当 ADC 内部的转换过程完成时,微控制器必须在 SCLK 输入处生成一系列至少 12 个正脉冲(图 2)。 第一个脉冲的上升沿使 MAX1241 做好数据传输的准备。 在 DOUT 上的脉冲下降时,最高有效的第 12 位显示为逻辑 11 或 XNUMX。 微控制器读取该位,在 SCLK 上生成第二个脉冲的前端,并在一段时间后 - 它的下降。 在第二个脉冲下降时,微控制器读取的第 XNUMX 位出现在 DOUT 等上。

在第 12 个脉冲下降时,最低有效位在 DOUT 输出处设置。 第 1 个脉冲的下降使 DOUT 处于零状态,此时 CS# 输入设置为 13。 通过将CS#转换为单一状态,微控制器通知MAX1读取转换结果的过程已完成。 将 CS# 设置为 1241 后,MAX1241 的下一次转换大约需要 1 µs。

Linear Technology 的 LTC1286、LTC1298 和 Analog Devices 的 AD7894 的操作算法与 MAX1241 的描述略有不同。 更多详情请参阅各公司的说明。

电平转换器MAX202E

对于任何人来说,这都不是秘密,在标准逻辑中,2,4 由 5 至 0 V 的电压电平表示,零由 0,8 至 232 V 的电压电平表示。但是,初学者可能不知道零和 5 是通过 RS-传输的。 12 通道使用相同的值(从 XNUMX 到 XNUMX V)进行编码,但符号信号不同。 在本文的框架内,它无意解释为什么通常这样做而不是其他方式 - 我们将仅限于陈述这一事实。

由于标准逻辑信号必须转换为另一电平的信号才能通过RS-232传输,因此需要在电路中提供适当的转换手段。 大约十年前,为此目的使用了专门设计的三四个晶体管、一对二极管和近十几个电阻器的级联。 现在情况发生了重大变化:领先的微电路制造商生产完全成品的转换器,需要最少数量的附加元件。 其中包括 MAXIM 的 MAX10E 和 Analog Devices 的 AD202,它们与它完全相同,甚至连引脚排列都相同。 两个微电路内部均包含一个+232 V至+5 V电压转换器(与上述MAX10相同),以及将标准电平逻辑信号转换为RS-680电平信号的级联。 这些微电路中的每一个都包含用于两个接收器和两个发射器的逻辑电平转换器。 我们将仅使用一个收发器通道。

带有串行通道的 MK 的操作模式

众所周知(例如,参见 10 年《无线电》杂志的第 11 和 1994 期),x51 系列的微控制器具有四种收发器操作模式。 我们会对模式 1 感兴趣,因为它是最简单且最容易接受的。

模式 1 的特征在于以下参数:

  • 异步信息交换;
  • 每个交换动作传输 10 位(起始位 (0)、8 个数据位和停止位 (1));
  • 接收/传输速率是可编程的,由定时器设置。

这是一种方便的编程模式:只需很少的编程代码即可设置和操作收发器。 不过,如果您愿意,也可以使用其他操作模式。 本文的目的是描述一种能够与个人计算机进行通信的设备。

我们不会在这里描述收发器到底是如何工作的。 该信息可以从提到的杂志“Radio”或其他文献中收集。

MK的基本例程

微控制器的主要例程是:从 ADC 读取数据、初始化 UART、接收字节和发送字节。

从 ADC 读取数据

设置 PC 通过串行链路交换信息。

为了将您的 PC 配置为通过串行通道交换信息,您必须执行以下操作:

  • 禁用所有中断,因为不需要使用它们;
  • 将定时器 1 设置为在模式 2 下工作并自动重新加载内容。 这对于设置信息交换的速度并保持其恒定是必要的;
  • 将初始值加载到定时器计数器中;
  • 启动计时器 1。

针对谐振频率为 9600 MHz 的石英谐振器的 11,059 bps 交换率设计的代码示例:

GET_VOLT:SETB DOUT; 允许从 ADC SETB CS 输入数据; 设置初始状态 ADC CLR SCLK ; 设置初始状态 ADC CLR CS ; 报告读取 MUL AB 数据; 4 MKS 在 12 MHZ\ MUL AB ; 4 国际空间站 | 穆拉布; 4 ISS}等待结束; | 数字 MUL AB ; 4 MKS / MOV R0,#12 ; 读取 12 位 GET_VC: SETB SCLK ; \ 没有; | 没有; | CLR SCLK ; } 已经产生了一个阅读 BIT NOP 的脉冲; | 没有; / MOV C, DOUT ; 读位 MOV A, R2 ; \RLC一个; | 移动 R2,A ; | MOV A,R3; } 将位推入单词; | 结果 - R3R2 RLC A ; | 移动 R3,A ; /DJNZ R0,GET_VC; 循环 ANL A,#0FH MOV R3,A ; 清除高位 R3R2 SETB CS ; 不想读出来; (剩余位 = 0) MUL AB ; 4 MKS 在 12 MHZ \ MUL AB ; 4 国际空间站 | 穆拉布; 4 国际空间站 | 穆拉布; 4 µs }最小延迟; | 下一个之前穆拉布; 4 国际空间站 | 穆拉布; 4 国际空间站 / RET   

该子程序在主微机程序中称为第一个子程序。 原则上,它甚至不能被设计为子程序。

接收和发送一个字节

通过串行通道接收和发送字节的例程非常简单。

SERINIT: MOV IE, #0 ; 禁用所有中断 MOV TMOD, #20H ; 设置定时器 2 的模式 1 MOV TH1, #REL96 ; 自动重载计数器的值 MOV TL1, #REL96 ; 9600 bps 的初始计数器值; SMOD = 0 ANL PCON,#7FH; 清除 SMOD MOV SCON, #50H ; 8 位数据和波特率的模式, ; 定时器相关的 SETB TR1 ; 启动定时器/设置器 1 RET,其中 REL96 是一个等于 0FDh 的常数

仅当 SCON 控制/状态寄存器中的 RI 位被置位(指示接收缓冲区中存在字节)时,才能从 SBUF I/O 端口读取字节。 读取该字节后,RI 位必须复位。

向 I/O 端口写入一个字节后,需要等待 TI 位被置位,这将表示向线路发送字节结束。 那么TI位也需要复位。

接收一个字节到累加器的子程序:

GETCH:JNB RI,GETCH MOV A,SBUF CLR RI RET

从累加器发送一个字节的子程序:

PUTCH: MOV SBUF, A SEND: JNB TI, SEND CLR TI RET

还应该注意的是,微型计算机没有任何检测I/O错误的装置。

为了以软件和硬件的方式组织检查,您可以扩展输入/输出线路的数量,通过这些线路传输附加信号,并且可以通过它们确定对话参与者所处的状态,以及识别错误。

可以通过另一种方式提高接收/发送信息的可靠性:用八个数据位再发送一位——奇偶校验位,其计算方式与程序状态字中的奇偶校验标志(PSW 位 0)类似。 仅应针对发送或接收的字节进行计算。 收到字节和奇偶校验位后,需要比较它们是否匹配。 如果它们不匹配,则发生 I/O 错误。 要传输额外的第9个信息位,必须使用定时器/计数器的模式2或3。

MK 通用程序。 设备状态图

一般的微计算机程序基于下述算法。 算法比较复杂,因为尽管如此,您仍然需要以某种方式(至少以编程方式)检测输入/输出错误并对它们的出现做出响应。

为了更清楚起见,用普通文字描述的算法附有一张图——所谓的设备状态图(图3),它显示了设备在与计算机进行信息交换方面的四种主要状态。

如何通过 RS-232 连接微控制器和计算机
米。 一

让我们提前规定这样一个事实:我们的微型计算机是数据交换的奴隶,而个人计算机是主导者。 换句话说,如果没有 PC 的命令,设备本身不应该执行任何操作。 它完全隶属于控制计算机。 选择个人计算机作为领导者的原因很简单,因为它具有更强大的功能并且能够控制设备而不会出现任何特殊问题。 此外,它还可以赋予用户更多的服务功能。

状态一——等待

接通电源后,设备立即处于此状态。 这里等待计算机的初始化请求,表现为计算机发送NUL字符。 反过来,设备必须响应收到的请求,启用并配置(如有必要)附加模块和资源,然后,如果一切顺利,则向计算机发送 ACK 符号。 如果出现错误,它应该发送 NAK。 这样,两个“对话者”的第一次“交流”就发生了。 如果愿意的话,他们应该“互致问候”或“握手”。

如果设备初始化成功然后发送 ACK 字符,它会自动进入下一个状态。 该转变由图中的箭头 1 表示。

就绪状态

在这种状态下,我们的微型计算机正在等待 PC 请求发送从 ADC 读取的测量值。 该请求是一个 XON 字符。 接受此符号后,设备进入新状态 - 正在发送。 箭头2对应于转变。

发送状态

到这里,微控制器通过前面提到的方法从 ADC 读取二进制 1 位数字,并将其部分发送到计算机。 此实现将二进制数转换为其等效的三字符十六进制数,例如 <511FF> 表示十进制 1。先发送 <XNUMX>,然后发送 还有一个 .

完成将值传输到计算机后,微型计算机根据箭头 4 进入下一个状态。

发送状态

此状态是最后一个状态,可以说,它关闭了设备和计算机之间的单个通信行为的循环。 在这里,计算机应确认它已正确接收到发送给它的值。

PC 对发送的号码的响应有几种可能的选项:它可以用 XOFF 符号响应成功接收,这意味着现在不需要更多其他值,或者它可以用 XON 符号响应,这意味着还需要一个值。 如果接受 XOFF,设备将返回就绪状态(图中的转换 7)。 如果接收到 XON 符号,则设备再次处于发送状态(转换 5),并重复从 ADC 读取,随后将数字传输到线路。 唯一未考虑的情况是 PC 不喜欢它收到的内容:例如,不是 <0>...<9> 范围内的字符, ...他得到了一些不同的东西 或<,>。 在这种情况下,它会向我们的设备发送 NAK 字符,这应该被解释为重新发送最后一个值的请求,这种情况会发生:设备再次转换到发送状态(沿箭头 6 转换)。

图中箭头 3 和 8 指示的转变仍未描述。 如果计算机检测到严重的 I/O 错误或需要停止与设备通信,那么它只会发送一个初始化 NUL,这将初始化设备并将其置于就绪状态。

那些。 无论我们的设备处于何种状态,它都必须以与初始初始化期间相同的方式响应初始化请求(请参阅等待状态项)。 如果微计算机收到一些意外的或不正确的字符或请求,那么它应该总是用 NAK 字符来响应。

这种策略是有利的,因为设备的程序的这种组织使得更容易同时执行多个任务:首先,微型计算机和PC不会玩坏了的手机,其次,它们将能够简单有效地与朋友互相“交流”。

让我们转向 PC。 PC通用程序。 PC状态图

从根本上来说,计算机的通用程序与微控制器中使用的程序没有任何区别。 算法将类似,状态图将类似。

第一状态初始化

这是当用户按下键盘上对应于接受单个值的键时计算机得到的结果。 在此状态下,计算机向设备发送 NUL 初始化字符,并等待 ACK 或 NAK 字符的响应。 如果收到 ACK,则初始化正常,您可以继续工作 - 沿着图中的箭头 2 转到下一个状态。 如果收到 NAK,则操作应停止,计算机应按箭头 1 进入最终状态“完成”。

就绪状态

在这种状态下,计算机准备接收构成微型计算机请求的值的字符。 有两个发送值的请求。 第一个是普通值请求,由 XON 字符匹配。

第二个请求是重新发送最后一个值的请求。 如果该值在一段客观时间内没有被完全接受,或者收到了不属于 <0> 到 <9> 以及从 到 范围内的错误字符,则这是必要的 . 对于重传请求,分配了字符 NAK。

接下来,在准备接收值符号后,对我们的设备发生上述两个请求之一,然后计算机沿着箭头4移动到值接收状态。

接收状态

此处,PC 仅读取 ADC 测量和转换的值的三个字符。 如前所述,计算机等待一个字符有一定的客观时间。 如果在这段时间内没有读取该字符,则这种情况被解释为错误,即发生 I/O 错误。

顺便说一句,在相当高的信息交换速率(超过 19200 bps)或在 MS-Windows 操作系统(任何版本)中工作时,经常会发生计算机仅接收发送给它的三个字符中的两个的情况,有时甚至更少——一个。 为了防止计算机“挂起”——等待无限长的丢失或丢失的字符——引入了一些时间来限制这种期望。 不幸的是,这些遗漏并不能通过硬件方法检测到。

此实现定义了两种类型的超时,可以由用户通过键盘指定。 第一种类型是 1 个字符中的 3 个的超时。 它让设备能够平静地、不急于任何地方,测量、数字化我们需要的数字,并将其转换成符号等价物。 第二种是发送第二个和第三个字符的时间限制。

现在让我们继续讨论从接收状态到其他状态的可能转换。

如果在指定时间内未收到该值的所有 3 个字符,则计算机必须要求我们的设备再次发送该值。 这种情况对应于沿箭头5的转变,即计算机发出带有 NAK 字符的请求并转换回就绪状态。

如果在接收过程中计算机检测到输入输出错误(并且PC机有能力简单分析串口的状态寄存器),那么最好将计算机和单片机都恢复到原来的状态,即恢复到原来的状态。 重复初始化。 因此,图中也存在箭头3。

最后,如果计算机已从设备接收到所有三个字符,则它会进入接收值的分析状态 - 沿箭头 8 进入已接收状态。

出版:cxem.net

查看其他文章 部分 微控制器.

读和写 有帮助 对这篇文章的评论.

<< 返回

科技、新电子最新动态:

用于触摸仿真的人造革 15.04.2024

在现代科技世界,距离变得越来越普遍,保持联系和亲密感非常重要。萨尔大学的德国科学家最近在人造皮肤方面的进展代表了虚拟交互的新时代。萨尔大学的德国研究人员开发出了超薄膜,可以远距离传输触觉。这项尖端技术为虚拟通信提供了新的机会,特别是对于那些发现自己远离亲人的人来说。研究人员开发的超薄膜厚度仅为 50 微米,可以融入纺织品中并像第二层皮肤一样穿着。这些薄膜充当传感器,识别来自妈妈或爸爸的触觉信号,并充当将这些动作传递给婴儿的执行器。父母触摸织物会激活传感器,对压力做出反应并使超薄膜变形。这 ... >>

Petgugu全球猫砂 15.04.2024

照顾宠物通常是一项挑战,尤其是在保持房屋清洁方面。 Petgugu Global 初创公司推出了一种有趣的新解决方案,这将使猫主人的生活变得更轻松,并帮助他们保持家中干净整洁。初创公司 Petgugu Global 推出了一款独特的猫厕所,可以自动冲掉粪便,让你的家保持干净清新。这款创新设备配备了各种智能传感器,可以监控宠物的厕所活动并在使用后激活自动清洁。该设备连接到下水道系统,确保有效清除废物,无需业主干预。此外,该厕所还具有较大的可冲水存储容量,非常适合多猫家庭。 Petgugu 猫砂碗专为与水溶性猫砂一起使用而设计,并提供一系列附加功能 ... >>

体贴男人的魅力 14.04.2024

长期以来,女性更喜欢“坏男孩”的刻板印象一直很普遍。然而,英国莫纳什大学科学家最近进行的研究为这个问题提供了新的视角。他们研究了女性如何回应男性的情感责任和帮助他人的意愿。这项研究的结果可能会改变我们对男性对女性吸引力的理解。莫纳什大学科学家进行的一项研究得出了有关男性对女性吸引力的新发现。在实验中,女性看到了男性的照片,并附有关于他们在各种情况下的行为的简短故事,包括他们对遇到无家可归者的反应。一些人无视这名无家可归的人,而另一些人则帮助他,比如给他买食物。一项研究发现,与表现出同理心和善良的男性相比,表现出同理心和善良的男性对女性更具吸引力。 ... >>

来自档案馆的随机新闻

14nm DRAM DDR5 12.10.2021

三星电子宣布开始使用高紫外 (EUV) 光刻技术量产 14nm DRAM 内存。 去年 XNUMX 月,该公司出货了业界首款 EUV DRAM。 从那时起,用 EUV 形成的层数已增加到五层。 据制造商介绍,这是业内最先进的工艺技术。

它提供了当今可用的最高存储密度,每盘可增加约 20% 的存储空间。 此外,14nm工艺与上一代相比,可帮助降低高达20%的功耗。

新内存将有助于实现高达 7,2Gbps 的“前所未有的速度”,是 DDR4 最高速度 3,2Gbps 的两倍多。

三星计划为数据中心、超级计算机和企业服务器发布新的 DDR5 内存。 此外,计划将晶体密度提高到 24 Gbit。

其他有趣的新闻:

▪ 从地幔中发现了一种独特的矿物

▪ 蜈蚣机器人

▪ 移动太阳能电池板的效率比固定太阳能电池板高 30%

▪ 呼吸出卖罪犯

▪ Traco Power TMG - 每块板的紧凑型 AC-DC 模块

科技、新电子资讯

 

免费技术图书馆的有趣材料:

▪ 网站“电力初学者”部分。 文章精选

▪ 达摩克利斯之剑文章。 流行表达

▪ 文章 发明什么文学人物大仲马只是为了增加费用? 详细解答

▪ 文章鬼臼甲状腺。 传说、栽培、使用方法

▪ 文章 羊皮和兽皮脱脂。 简单的食谱和技巧

▪ 文章继电保护。 3 kV及以上高压绕组变压器(自耦变压器)和500 kV并联电抗器的保护。 无线电电子电气工程百科全书

留下您对本文的评论:

Имя:


电子邮件(可选):


点评:





本页所有语言

主页 | 图书馆 | 用品 | 网站地图 | 网站评论

www.diagram.com.ua

www.diagram.com.ua
2000-2024