我想在PIC18F4550和PC之间进行通信,但是无论是长距离使用UART还是USART,我都陷入了困境。什么时候使用一个而不是另一个更有利?
我想在PIC18F4550和PC之间进行通信,但是无论是长距离使用UART还是USART,我都陷入了困境。什么时候使用一个而不是另一个更有利?
Answers:
为了您的目的,UART和USART是同一件事。UART代表通用异步接收器/发送器。USART中的附加S表示同步。这只是Microchip的一点附加功能,它使模块在某些情况下变得更加有用。该额外功能不适用于您的情况。
PC COM端口仅需要一个UART即可与之通信。USART可能以其他方式使用的事实与您无关,除了也许您必须以正确的方式设置一些其他配置位。
简短答案:使用您拥有的任何芯片
要全面检查问题,必须对首字母缩略词进行解码:
一个ü niversal 一个同步[R eceiver 牛逼变送器是你传统的“串行端口”。从仅涉及单个信号的意义上讲,它是异步的-不发送时钟,而是接收器必须恢复时钟(通常通过过采样)。
对比度的ü niversal 小号 ynchronous 甲同步ř eceiver Ť变送器是更通用的与UART式设备异步模式,但是其也可以可选地被配置在操作同步,其中一个时钟与数据一起发送的模式。根据功能的不同,这可能包括与众所周知的同步串行格式(例如SPI或I2S)的互操作。
一些MCU可能同时提供两种类型的外设。对于基本的异步串行需求,您可以选择其中一个。但是,您的选择可能会受给定外设可以在其上操作的引脚,系统中的其他需求等影响。工厂ROM引导加载程序可能仅在某些外设上工作,而在其他外设上工作。缓冲区支持,字长,奇偶校验支持,关联的控制信号等也可能有所不同。两者之间的软件接口可能完全不同。
对于您的微控制器,它们基本上是同一件事。
USART代表通用异步和同步接收器/发送器。UART代表通用异步接收器/发送器。
异步数据传输大部分时间将在此通信协议中使用。很少使用同步数据传输,因为您拥有更好的同步通信协议,例如SPI和I2C。
您的微控制器(MCU)中具有通用同步/异步接收器/发送器(USART)。该功能单元支持同步通信模式和异步通信模式。
在同步模式下,发送器Tx通过时钟线和数据线连接到接收器Rx。每个时钟周期一次,Tx在DATA上发送另一位,Rx从DATA接收另一位。传输时序由时钟控制,因此对于Tx和Rx都是已知的。因此,与异步模式相比,Tx和Rx都可以使用更高的比特率。
但是,需要两条线/连接器引脚而不是一根,并且CLOCK和DATA之间的过度偏斜或抖动会导致接收到损坏的数据。线路驱动器和线路接收器中携带CLOCK和DATA的时序必须紧密匹配,以减少这种偏斜。在使用长电缆和/或多个连接跃点的情况下,接口和两线因素在更长的距离上都变得更加突出。
在异步模式下,发送器Tx通过DATA线连接到接收器Rx。每个定时位周期一次,Tx在DATA上发送另一位,而Rx从DATA接收另一位。传输时序由Tx和Rx中的分频振荡器控制,每个振荡器彼此都不知道,并且会略有不同。因此,最大可靠比特率低于同步模式。
在每个新字节的开始处,Rx使用开始的STOP-START位转换来与输入位序列时序重新同步。这使得来自线路驱动器/接收器,电缆和连接器的延迟与位周期时序无关,尽管与位质量无关。每个通信信号只需要一根电线,而不是两根,从而降低了电缆,连接器和线路驱动器/接收器的成本。
因此,这取决于您可以接受的费用,行进的距离以及Tx和Rx的功能。您的PC可能仅在标准COM端口上支持异步模式,而对于同步模式则需要特殊的端口(PCIe或USB,可能是USB)。