UART信号模拟仿真
ATtiny13没有UART模块,因此在调试程序时,使用软件模拟UART信号很有必要。本文将介绍如何如何控制2个GPIO来模拟UART TX和RX信号,并在Proteus仿真。
1、UART信号介绍
UART的信号一般由如下三部分组成:
- 开始信号
- 数据信号
- 停止信号
UART 信号保持高电平。 作为要传输的数据,它将信号拉低并保持一位长度。 该位称为起始位,旨在向接收器指示数据即将到来。 在下一步中,它以 LSP(最低有效位)顺序传输一个字节数据。 图中的例子是发送一个字符“1”,在 ASCII 十六进制编码中为 0x31,在二进制中等于 00110001。 它表明 UART 相应地发送最右边的位 1 直到最左边的位 0。数据传输后,它将信号拉高并保持一位长度。 该位称为停止位,它指示接收器没有更多数据。
如果要发送的字节不止一个,则需要重复这些步骤。
每个位的长度由 UART 波特率决定。 以波特率9600为例,表示一秒可以传输9600位,即位长为1s / 9600 Hz = 104.2微秒。 波特率越高,位长越短。 以波特率 115200 为例,位长为 1s / 115200 Hz = 8.7 微秒。
使用GPIO模拟UART信号的难点:
在使用GPIO模拟UART信号时需要考虑一些问题: