SDMMC超时时间计算与表格解析

需积分: 45 28 下载量 155 浏览量 更新于2024-08-06 收藏 18.87MB PDF 举报
"这篇文档主要介绍了与超时时间计算相关的表格和函数,特别是在LPC178x微控制器上下文中。" 在程序开发中,尤其是在处理硬件接口如SD卡时,超时时间的设置是至关重要的。标题提到的“超时时间相关表格”包括三个关键部分:时间单位表、时间值表和超时时间因数表。 1. **时间单位表**(time_unit):这是一个由8个元素组成的INT32U类型的数组,用于将不同的时间单位统一到最精细的单位,即0.000000001ns。数组中的数值分别是1ns到100ns的倍数,便于将不同时间间隔转换到同一尺度,以便于计算。 2. **时间值表**(time_value):这是另一个8元素的INT8U类型数组,它将TAAC(传输速度访问类别)的特定范围值转换为对应的整数值。这些值可能代表了SD卡的响应时间,比如10、12、13等,它们通常与时间单位表结合使用,以确定合适的超时时间。 3. **超时时间因数表**(r2w_factor):这个表包含8个INT8U元素,用于将R2WFACTOR(读到写的时间因子)的二进制表示转换为实际的数值,帮助计算读、写、擦除操作的超时时间。 在LPC178x的SDMMC_CalTimeout()函数中,可以看到如何利用这些表格来计算超时时间。该函数接受一个sd_struct指针,其中包括主机时钟频率值。函数首先计算出100ms和250ms的时钟当量,然后调用SdCmd_Send_CSD()函数读取SD卡的CSD(Card Specific Data)寄存器,获取更多关于卡性能的信息。默认的读超时时间被设置为100ms。 SD卡的超时时间计算涉及到多个物理量之间的单位转换,例如,将时钟周期转换成毫秒,并考虑到SD卡的响应时间以及系统时钟速度。这样的计算确保了在等待SD卡响应时,系统不会过早或过晚地中断操作,从而保证了通信的稳定性和可靠性。 文档还提到了LPC178x中的其他功能部件,如E2PROM存储器和外部存储器控制器(EMC),但这些内容与超时时间计算的主题不直接相关。E2PROM存储器是用于非易失性数据存储的硬件模块,而EMC则是用于控制外部RAM或Flash等存储设备的控制器,这些功能在嵌入式系统中也是关键组成部分。