打印
[技术问答]

Nano100系列的SmartCard接口转串口模式通信问题

[复制链接]
3199|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
星海小方|  楼主 | 2014-2-21 09:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教前辈们,Nano100系列的SmartCard接口转串口模式通信问题。目前发送数据可以正常发送,但接收数据会出现异常。已经确认了SC接口不存在硬件上的设计缺陷。想请教下,问题还可能出在哪?或者谁有SmartCard口转串口相关的Demon程序
沙发
niuyaliang| | 2014-2-21 09:47 | 只看该作者
Nano_SC_UART_DEMO.zip (49.67 KB)

使用特权

评论回复
板凳
niuyaliang| | 2014-2-21 09:48 | 只看该作者
2楼是官网的例子,另外楼主表述不清,数据接收异常,表现为什么呢,程序呢?

使用特权

评论回复
地板
星海小方|  楼主 | 2014-2-24 10:14 | 只看该作者
异常主要是表现在接收到的是乱码。
/* Receive Data Reach Interrupt : RDR data ready */
   if(SC->ISR & (SC_ISR_RDA_IS | SC_ISR_RTMR_IS)) {
                while(!(SC->TRSR & SC_TRSR_RX_EMPTY_F)) {
                        rx_buf0[rx_tail0] = SC->RBR;
                        SMARTCARD_UartWrite(SC0, &rx_buf0[rx_tail0], 1);
                       
                        if((rx_tail0 + 1) % BUF_LEN != rx_head0)
                                rx_tail0 = (rx_tail0 + 1) % BUF_LEN;
                }
                SC->ISR = SC_ISR_RDA_IS | SC_ISR_RTMR_IS;
    }

使用特权

评论回复
5
星海小方|  楼主 | 2014-2-24 10:15 | 只看该作者
niuyaliang 发表于 2014-2-21 09:47

谢谢:handshake!我试试看能不能解决

使用特权

评论回复
6
星海小方|  楼主 | 2014-2-24 11:31 | 只看该作者
niuyaliang 发表于 2014-2-21 09:48
2楼是官网的例子,另外楼主表述不清,数据接收异常,表现为什么呢,程序呢? ...

请求赐教,:Q异常主要表现在SmartCard口输出的显示是乱码!
这是SmartCard口中断处理函数
void SC0_IRQHandler(void)
{
    SC_TypeDef *SC = SC0;
    /* transmit buffer empty interrupt */
    if( SC->ISR & SC_ISR_TBE_IS ) {
                while(!(SC->TRSR & SC_TRSR_TX_FULL_F)) {
                   if(tx_head0 != tx_tail0) {
                        SC->THR = tx_buf0[tx_head0++];
                                    tx_head0 %= BUF_LEN;
                    } else {
                         SC->IER &= ~SC_IER_TBE_IE;   // nothing else to send. disabler interrupt
                                     break;
                            }
           }
           SC->ISR = SC_ISR_TBE_IS;
    }
    /* Receive Data Reach Interrupt : RDR data ready */
   if(SC->ISR & (SC_ISR_RDA_IS | SC_ISR_RTMR_IS)) {
                while(!(SC->TRSR & SC_TRSR_RX_EMPTY_F)) {
                        rx_buf0[rx_tail0] = SC->RBR;
                        SMARTCARD_UartWrite(SC0, &rx_buf0[rx_tail0], 1);
                       
                        if((rx_tail0 + 1) % BUF_LEN != rx_head0)
                                rx_tail0 = (rx_tail0 + 1) % BUF_LEN;
                }
                SC->ISR = SC_ISR_RDA_IS | SC_ISR_RTMR_IS;
    }
    return;
}

使用特权

评论回复
7
星海小方|  楼主 | 2014-2-24 13:56 | 只看该作者
niuyaliang 发表于 2014-2-21 09:47

抱歉。。。根据你提供的那个,,我还是没能解决SmartCard口转UART模式数据通信问题:'(

使用特权

评论回复
8
niuyaliang| | 2014-2-24 15:10 | 只看该作者
星海小方 发表于 2014-2-24 11:31
请求赐教,异常主要表现在SmartCard口输出的显示是乱码!
这是SmartCard口中断处理函数
void SC0_IRQHa ...

哈哈,明显看不懂呀。。。你试试
1.不要开中断,主函数不停的收,收到就发出去,用串口软件接收,看看是否接收成功
2.开中断,用中断接收测试

使用特权

评论回复
9
a_ziliu| | 2014-2-26 10:23 | 只看该作者
可以拿nano的學習板測試。
如果還是有問題的話,看是否為卡片的協議是nano不支援的。
這時請找一下代理商幫忙吧。

使用特权

评论回复
10
从小木丁丁| | 2014-2-26 10:44 | 只看该作者
时序

使用特权

评论回复
11
星海小方|  楼主 | 2014-2-27 09:02 | 只看该作者
a_ziliu 发表于 2014-2-26 10:23
可以拿nano的學習板測試。
如果還是有問題的話,看是否為卡片的協議是nano不支援的。
這時請找一下代理商幫 ...

我现在用的就是供应商给的开发板:NANO130测试的
测试的代码也是官网上下的
就是依旧同样的问题。。。

使用特权

评论回复
12
星海小方|  楼主 | 2014-2-27 09:11 | 只看该作者
从小木丁丁 发表于 2014-2-26 10:44
时序

时序已经上传,帮忙指点下。。。:'(

SmartCard收发波形图.pdf

243.16 KB

时序

使用特权

评论回复
13
骗子的片子| | 2014-2-27 09:40 | 只看该作者
星海小方 发表于 2014-2-27 09:11
时序已经上传,帮忙指点下。。。

看看再说

使用特权

评论回复
14
骗子的片子| | 2014-2-27 21:45 | 只看该作者
星海小方 发表于 2014-2-27 09:11
时序已经上传,帮忙指点下。。。

还得用电脑上啊,手机无力

使用特权

评论回复
15
niuyaliang| | 2014-2-28 23:34 | 只看该作者
星海小方 发表于 2014-2-24 13:56
抱歉。。。根据你提供的那个,,我还是没能解决SmartCard口转UART模式数据通信问题 ...

我看了看,波形是正常的,你加校验试试看了没

使用特权

评论回复
16
星海小方|  楼主 | 2014-3-4 14:57 | 只看该作者
通过时序,我看不出什么,只知道供应商说是有问题~!
后面继续参考手册,发现了问题所在:主要是停止位的问题!
NANO100系列的SMARTCARD口的停止位默认是2,而我一直都是按普遍的1位来测,所以总是乱码!

使用特权

评论回复
17
星海小方|  楼主 | 2014-3-4 14:59 | 只看该作者
最后,谢谢大家的热心解答

使用特权

评论回复
18
niuyaliang| | 2014-3-4 23:40 | 只看该作者
星海小方 发表于 2014-3-4 14:57
通过时序,我看不出什么,只知道供应商说是有问题~!
后面继续参考手册,发现了问题所在:主要是停止位的问 ...

手册没看仔细吧,哈哈。。。

使用特权

评论回复
19
星海小方|  楼主 | 2014-3-5 16:08 | 只看该作者
niuyaliang 发表于 2014-3-4 23:40
手册没看仔细吧,哈哈。。。

真的没注意到停止位,我以为一般停止位是1,navo100系列的smartcard口应该也是吧!
泪崩呀

使用特权

评论回复
20
从小木丁丁| | 2014-3-8 18:40 | 只看该作者
星海小方 发表于 2014-2-27 09:11
时序已经上传,帮忙指点下。。。

我看看来

使用特权

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

本版积分规则

5

主题

21

帖子

0

粉丝