打印
[MM32硬件]

灵动MCU串口的智能卡模式

[复制链接]
1062|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

设置UART_SCR 寄存器的SCEN 位选择智能卡模式。
该接口符合ISO78163
标准,支持智能卡异步协议。UART 应该被设置为:
• 8 位数据位加校验位:此时UART_CCR 寄存器中CHAR=11、PEN=1
• 发送和接收时为1.5 个停止位:即UART_CCR 寄存器的SPB1=1、SPB0=1
下图给出的例子说明了数据线上,在有校验错误和没校验错误两种情况下的信号。



当与智能卡相连接时,UART 的TX 驱动一根智能卡的双向线。为了做到这点,RX 必须和
TX 连接到相同的I/O 口。在发送开始位和数据字节期间,发送器的输出使能位TXEN 被
置起,在发送停止位期间被释放(弱上拉),因此在发现校验错误的情况下接收器可以将数
据线拉低。如果TXEN 不被使用,在停止位期间TX 被拉到高电平:这样的话,只要TX 配
置成开漏,接收器也可以驱动这根线。
智能卡是一个单线半双工通信协议

• 从发送移位寄存器把数据发送出去,要被延时最小1/2 波特时钟。在正常操作时,一个
满的发送移位寄存器将在下一个波特时钟沿开始向外移出数据。在智能卡模式里,此发
送被延迟1/2 波特时钟。
• 如果在接收一个设置为0.5 或1.5 个停止位的数据帧期间,检测到一奇偶校验错误,在
完成接收该帧后(即停止位结束时),发送线被拉低一个波特时钟周期。这是告诉智能卡
发送到UART 的数据没有被正确地接收到。此NACK 信号(拉低发送线一个波特时钟周
期) 在发送端将产生一个帧错误(发送端被配置成1.5 个停止位)。应用程序可以根据协
议处理重新发送数据。如果设置了SCAEN 控制位,发生校验错误时接收器会给出一个
NACK 信号;否则就不会发送NACK。
• TXC 标志的置起可以通过编程保护时间寄存器得以延时。在正常操作时,当发送移位寄
存器变空并且没有新的发送请求出现时,TXC 被置起。在智能卡模式里,空的发送移位
寄存器将触发保护时间计数器开始向上计数,直到保护时间寄存器中的值。TXC 在这段
时间被强制拉低。当保护时间计数器达到保护时间寄存器中的值时,TXC 被置高。
• 标志的撤销不受智能卡模式的影响。
• 如果发送器检测到一个帧错误(收到接收器的NACK 信号),发送器的接收功能模块不会
把NACK 当作起始位检测。根据ISO 协议,接收到的NACK 的持续时间可以是1 或2
波特时钟周期。
• 在接收器这边,如果一个校验错误被检测到,并且NACK 被发送,接收器不会把NACK
检测成起始位。
注意:1. 断开符号在智能卡模式里没有意义。一个带帧错误的00h 数据将被当成数据而不
是断开符号。
2. 当来回切换TXEN 位时,没有IDLE 帧被发送。ISO 协议没有定义IDLE 帧。
下图详述了UART 是如何采样NACK 信号的。在这个例子里,UART 正在发送数据,并且
被配置成1.5 个停止位。为了检查数据的完整性和NACK 信号,UART 的接收功能块被激
活。



使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

291

主题

1900

帖子

4

粉丝