本文介绍在没有专用的SIM卡接口的情况下,使用UART与SIM卡进行通信的电路设计。
参考连接一:https://blog.csdn.net/weixin_42151788/article/details/108389068
参考连接二:https://www.cnblogs.com/utank/p/5463269.html
电路如下
SIM卡座引脚,一般有如下信号
1. C1---VCC电源
2. C2---RST复位信号
3. C3---CLK时钟信号
4. C4---SW SIM卡在位探测信号
5. C5---GND
6. C6---VPP可编程电压
7. C7---I/O双向通信数据信号
设计分析如下
1. SIM卡虽小,但是里面也是五脏俱全的电路,该有的都有,所以需要提供电源VCC和时钟CLK。其CLK频率跟传输速率有关,所以这里需要跟UART的波特率对应起来。
2. 因为时序的需要,需要控制VCC,RST,CLK,I/O;VPP悬空不用处理,SW卡在位信号根据实际情况是否需要检测,不用悬空即可。
3. 因为UART有TX,RX两个信号线,常见用法是两个都用,但是SIM卡只有一个双向的数据信号,所以这里需要UART的one-wire总线模式,具体电路可参考:https://www.cnblogs.com/QSHL/p/13532253.html
4. SIM卡通信协议有个很关键的等式etu =(F/D) * (1/f),简单的理解就是,传输1bit数据需要多少个时钟周期,等式符号说明如下
etu---1bit位宽时间
F---时钟速率转换因子
D---位速率调节因子
f---时钟频率
其中F,D有默认值,F=372,D=1,这里按照默认值设计,这样便于软硬件设计,通信简单。
例子:
假如使用UART使用9600bps进行通信,则1/9600 = (372/1)*(1/f),f=372*9600=3.5712MHz,所以这里需要给SIM卡提供3.5712MHz的时钟信号,此信号可由GPIO或者单独的晶振提供。
总结:
1. UART与SIM卡之间的通信速率可自定义,但是最好计算出来的时钟频率能在市场上买的到对应的晶振,或者GPIO容易产生
2. 需要注意UART与SIM I/O数据通信的电平,如果不一致,需要电平转换电路,用三极管搭建即可;复位信号RST同样道理
3. SIM卡的电源也会分好几种电源,从了解的信息来看3.3V/1.8V居多,所以这里的VCC需要根据实际情况供电
4. VCC,RST,CLK,I/O需要状态可控