数据通道状态与CRC错误:从TxFifo到RxOverrun

需积分: 45 28 下载量 76 浏览量 更新于2024-08-06 收藏 18.87MB PDF 举报
"LPC178x下册" 在LPC178x微控制器中,数据通道状态标志是通信过程中非常关键的部分,用于监控和管理串行接口的数据传输。这些标志提供了关于发送和接收FIFO(First In First Out,先进先出缓冲区)的状态信息,有助于实时检测错误和数据可用性。 表8.6列出了数据通道状态标志的详细解释: 1. **TxFifoFull**: 当发送FIFO已满,无法再写入新的数据时,此标志被置位。这意味着处理器必须等待FIFO空出空间才能继续发送数据。 2. **TxFifoEmpty**: 发送FIFO为空,表明当前没有待发送的数据。当准备发送数据时,这个标志会帮助确定是否可以立即写入FIFO。 3. **TxFifoHalfEmpty**: 发送FIFO半空,这是一个状态提示,表明FIFO还有一半的空间可用于写入新的数据。 4. **TxDataAvlbl**: 发送FIFO中有数据可用,表明FIFO中有待发送的数据,可以读取并传输。 5. **TxUnderrun**: 发生发送FIFO下溢出错,表示在数据传输过程中处理器未能及时提供新的数据,导致FIFO空出。这可能导致通信错误。 6. **RxFifoFull**: 接收FIFO已满,表示已接收到了足够的数据,不能再接收更多。此时需要读取FIFO以释放空间。 7. **RxFifoEmpty**: 接收FIFO为空,表明当前没有接收到新的数据。这是正常的,除非预期有数据正在接收。 8. **RxFifoHalfFull**: 接收FIFO半满,意味着FIFO中有一定量的数据等待处理。 9. **RxDataAvlbl**: 接收FIFO中有数据可用,表明可以读取并处理新接收的数据。 10. **RxOverrun**: 接收FIFO上溢出错,当FIFO已满而新的数据仍在进来时,会发生这种情况。这会导致数据丢失。 11. **DataBlockEnd**: 数据块发送或接收完成,指示一个完整的数据传输结束。 12. **StartBitErr**: 在宽总线模式下,如果在所有数据信号上没有检测到起始位,此标志会置位,表示可能存在通信问题。 13. **DataCrcFail**: 数据包CRC(循环冗余校验)失败,表明接收到的数据可能有误,因为校验和不匹配。 14. **DataEnd**: 数据结束(数据计数器为0),标志着一个数据传输周期的结束。 15. **DataTimeOut**: 数据超时,当等待数据的时间超过预定阈值时,可能表示通信中断或设备无响应。 16. **TxActive**: 数据发送正在进行,表示当前正在进行数据传输。 17. **RxActive**: 数据接收正在进行,说明接收端口正忙于接收数据。 此外,表8.5中的CRC令牌状态用于检查数据的完整性。例如,010表示接收到的数据块的CRC校验正确,而101表示检测到CRC错误,数据可能存在错误。 LPC178x系列微控制器还包含了E2PROM(电可擦除只读存储器)和外部存储器控制器(EMC)等功能部件。E2PROM允许非易失性数据存储,而EMC则支持连接各种类型的外部存储设备,如SD卡、SRAM或DRAM等,以扩展系统存储能力。这些章节会详细介绍这些部件的特性和操作方法,包括它们的寄存器描述和操作流程,对于理解LPC178x的系统级设计和应用至关重要。