我已经将一个ADC与微控制器接口,并通过UART读取数据。UART设置为115200 bps。
我想计算我可以用UART实现的最大采样率。ADC为12位,因此最大计数为4位(最多4095位(。每个数字将占用UART的一个字符。
UART比特率:115200 bps
UART字符速率:11520字符/秒(1个字符为10位(
每个样本的字符数:4个字符/样本
最大采样率:11520/4=2880个样本/s=2.8KSps
我的计算正确吗?我想知道UART是否会成为高速ADC传输的瓶颈。
ADC为12位长。那么,为什么我们需要从性格的角度来考虑呢?ADC的12位对应于十进制的[04095]。将每个数字视为一个字符,假设您需要传输4个字符,每个字符为10位,那么您将传输40位。但是ADC数据只是二进制格式的12位。我认为二进制->decimal->字符转换过于复杂,除非你有充分的理由这样做。ADC的12位可以简单地通过UART进行传输。
https://www.circuitbasics.com/basics-uart-communication/
UART一次串行传输8位。它包括1个起始位、1个奇偶校验位(可选(和至少1个停止位。因此,它一次传输8+1+1=11比特,用于传输ADC数据的前8比特。然后,它需要传输接下来的4位ADC数据,即8+1+1=1=11位(假设它不只传输4位(,用于传输接下来的四位ADC数据。因此,总的来说,它需要11+11=22比特的传输。UART IC还具有并行输入引脚,用于馈入待传输的数据。这需要一个时钟,即一个时钟用于馈入ADC数据的前8位,另一个时钟则用于馈入接下来的ADC数据的4位。因此,我们总共需要24个时钟来将数据从ADC馈送到UART IC,以在两个帧中传输,即一个ADC数据样本。UART波特率为115200 bps。采样率=115200bps/24=4800sps=4.8KSPS最大ADC采样率可为4.8KSPS.