历史上的今天
返回首页

历史上的今天

今天是:2025年12月26日(星期五)

正在发生

2022年12月26日 | 采用博通BCM20793结合S3C6410主控制器的NFC模块设计

2022-12-26 来源:elecfans

采用博通BCM20793芯片设计了NFC模块,进行硬件设计,并进行设备驱动分析。多方面对该模块进行验证,结果表明该模块稳定、可靠、识别率高,可集成到支付、票务、门禁、防伪等系统中。


引言

NFC(Near Field CommunicaTIon,近场通信)是由Philips和Sony联合推出的一种全新的近距离无线通信技术。NFC是由无线射频识别(RFID)及移动终端技术综合发展起来的,在单一芯片上结合感应式读卡器、感应式卡片和点对点的功能,能在短距离内与兼容设备进行识别和数据交换。NFC工作频率为 13.56 MHz,使用电磁感应耦合进行数据传输,具有双向连接和识别特点,兼容不同标准的识别技术,通信距离小于4 cm,支持多种通信速率。由于受限于传输速率以及通信距离,NFC不适合大数据的传输,而且通信双方必须有某种程度的相互信任。


NFC技术的出现改变了人们使用某些电子设备的方式,甚至改变了信用卡、现金和钥匙的使用方式,它可以应用在手机等便携型设备上,实现安全的移动支付和交易、简便的端到端通信、在移动中轻松接入等功能。随着智能手机的快速兴起,NFC与智能手机的结合将很大程度上促进NFC的发展,苹果公司推出的 iPhone6也具备NFC功能,相信在不久的将来NFC必定被广泛应用。


本文采用博通BCM20793 NFC芯片并结合S3C6410主控制器,设计了具有主动模式和被动模式的NFC阅读器,主要针对硬件和驱动进行了设计。


1 NFC技术原理

NFC有三种工作状态:Reader/Writer与NFC Tag/NFC Reader相关;Peer—to—Peer支持两个。NFC设备交互;Card EmulaTIon能把携带NFC功能的设备模拟成SmartCard。这三种工作状态又可归结为被动模式和主动模式,在Reader/Writer和Card EmulaTIon状态下处于被动模式,在Peer—to—Peer状态下处于主动模式。


在被动模式下,主设备负责启动通信,同时通过RF线圈产生电磁感应,为从设备提供电能。在这种模式下传输速率可以选择106 kbps、212 kbps或424 kbps,使用负载调制(load modulaTIon)方式,将数据发送给从设备,从设备可以不含电源组件,采用相同的速率以负载调制方式将数据返回给主设备,整个通信过程如图1所示。

a.jpg?imageView2/2/w/550

此通信机制与基于ISO14443A、MIFARE和FeliCa的非接触式智能卡兼容,其主要区别在于RF层信号调制解调的方法、传输速率及编码方式。因此,NFC发起设备在被动模式下,可以用相同的连接和初始化过程检测非接触式智能卡或NFC目标设备,并与之建立联系。


主动模式下,设备之间进行通信时,发起设备和目标设备都必须产生自己的射频场来进行通信。此种模式下NFC采用双向识别和链接,通信各方不存在固定的主从关系,通信可以由任意一个NFC设备发起。这是对等网络通信的标准模式,可以获得非常快速的响应。其通信流程如图2所示。

b.jpg?imageView2/2/w/550

此外,快捷轻型的NFC协议还可以引导两台设备之间的蓝牙配对过程。与其他无线通信技术相比,NFC是一种近距离私密通信方式,提供各种设备间轻松、安全、快速而自动的通信。对RFID来说,其具有距离近、带宽高、功耗低等特点;比红外更快、更稳定而且简单;与蓝牙相比,NFC通信距离近,适合交换重要数据。


2 硬件设计

NFC模块主要由NFC(控制器,可与Device Host或Secure Element安全单元交互)、Antenna(天线)和Contactless Front-End(非接触前段,负责射频信号的调制解调工作)三部分组成。本设计采用BCM20793芯片,该芯片支持212或424 kbps的数据传输速率,是专为低功耗、低价格的设备设计的。该模块提供PCI、I2C总线、UART串行接口,安全单元可以连接SD卡、SIM卡、SAM卡或是其他芯片,兼容多种通信标准。该芯片还支持低功耗模式、正常工作模式、轮询模式等多种工作模式。


主控制器采用S3C6410芯片,该芯片高性能、低功耗、高性价比,可以运行Android系统。BCM20793与S3C6410采用I2C总线的连接方式。TX1和TX2引脚接RC匹配电路,RC匹配电路的P_JS_IT_18和天线相连接。NFC芯片由1.8 V电压供电,其与主控制器有6根引脚相连,分别是NFC_I2C_SD数据线、NFC_I2C_SCL时钟线、NFC_I2C_REQ中断、 NFC_REQ_PU使能、HOST_WAKE唤醒,NFC_CLK_REQ时钟使能,I2C物理通信地址是0x77,时钟信号由19.2 MHz外接晶振提供、NFC电路原理图如图3所示。

c.jpg?imageView2/2/w/550

3 NFC驱动分析

3. 1 设备树分析

本设计内核采用了Linux 3.4版本,与以往内核版本不同的是,内核3.4版本采用设备树来对驱动设备进行统一管理,以方便设备的管理。NFC采用I2C总线的连接方式与CPU相连接,驱动只负责数据的发送接收,上层负责数据的解析工作。


下面是BCM2079x的设备树节点配置信息,包括:I2C总线的通信地址为0x77,中断为34号,GPIO34为中断引脚,GPIO65为使能引脚,GPIO20为唤醒引脚。其中最为关键的是compatible=“broadcom,bcm2079x_i2c”键值对,在加载驱动程序时,首先会匹配该字段,如果相等则调用probe函数进行相关的初始化工作。

d.jpg?imageView2/2/w/550

以下为I2C总线配置信息,GPIO31作为I2C总线的时钟信号线,GPIO32作为I2C总线的数据信号线,I2C总线的时钟频率为19.2MHz。

e.jpg?imageView2/2/w/550

驱动程序中的bcm2079x_matcn_table结构体负责和设备树进行匹配,在系统初始化阶段,就会匹配设备树里的.compatible属性是否在驱动中有相同的名字,本驱动中是broadcom,bcm2079x_i2c,若匹配成功就会调用驱动程序的probe函数进行初始化工作。

f.jpg?imageView2/2/w/550

h.jpg?imageView2/2/w/550

在驱动程序中,bcm2079x_parse_dt负责解析设备树的代码,以下为设备树解析关键代码,分别获取中断、使能、唤醒引脚。

i.jpg?imageView2/2/w/550

3.2 驱动初始化分析

内核加载驱动模块的时候,系统会调用bcm2079x_dev_init()函数,该函数内部嵌套了i2c_add_driver(),用来完成 bcm2079x_driver结构体的注册,系统就会自动探测驱动设备,通过比较设备树中是否有 compatible=“broadcom,bcm2079x_i2c”键值对来判断设备是否存在。如果存在,则会注册I2C设备相关信息,创建i2c- client,执行probe函数,在probe函数里去解析设备树里面配置的引脚,初始化中断、分配内存空间以及初始化互斥锁、等待队列等,并向系统将驱动注册为misc驱动,然后向系统注册中断。流程图如图4所示。

j.jpg?imageView2/2/w/550

3.3 驱动运行机制

当用户空间调用open打开/dev/bcm2079x设备节点时,通过ioctl机制调用驱动程序的ioctl,实现设备的使能与唤醒;然后调用Poll函数实现周期性的检测,以降低设备的功耗,当有设备或卡片接近NFC设备时,NFC就会产生中断,从而唤醒设备,用户空间就可以通过调用read函数实现I2C数据的读取。运行机制如图5所示。


4 测试结果

NFC设备平时处于休眠状态,设备也会发出探测脉冲,此时处于低功耗状态,当有卡片或NFC设备接近NFC设备时,就会产生中断唤醒设备,NFC设备就会连续地发出探测脉冲,此时NFC工作在正常工作模式。


图6是用频谱分析仪观测到的探测脉冲信号,载波频率为13.559 375 000 MHz,占用带宽OBW为2.259615 385 kHz,满足CE和FCC认证中针对NFC频段的射频测试要求的13 553~13 567 MHz的调制带宽限值。

k.jpg?imageView2/2/w/550

当将Tag1小卡贴近NFC天线时,可以读出卡内的二进制信息,图7为卡内信息。

l.jpg?imageView2/2/w/550

用设备分别测试Tag1、Tag2、Tag3、Tag4,其可识别距离最远为49 mm、45 mm、29 mm、21 mm,识别成功率在96%以上,测量结果如表1所列。

m.jpg?imageView2/2/w/550

以上测试表明,NFC模块可以识别多种类型的卡片,可识别距离最大为49 mm,满足NFC设计要求。该模块稳定、可靠、识别率高,可集成到移动支付、票务、门禁、防伪等不同系统中。


推荐阅读

史海拾趣

Advanced Fibreoptic Engineering Ltd公司的发展小趣事

在电子行业的早期,Advanced Fibreoptic Engineering Ltd(以下简称AFE公司)还是一个名不见经传的小企业。然而,随着技术的不断进步,AFE公司凭借其在光纤技术领域的深厚积累,成功研发出了一种具有划时代意义的新型光纤材料。这种材料不仅传输速度快,而且损耗极低,极大地提高了数据传输的效率和质量。这一技术突破迅速为AFE公司赢得了市场认可,公司的订单量激增,业绩逐年攀升。

随着技术的推广和应用,AFE公司的光纤产品逐渐在通信、医疗、工业等多个领域得到广泛应用。公司不仅在国内市场占据了一席之地,还积极拓展海外市场,与国际知名企业建立了稳定的合作关系。凭借卓越的产品性能和良好的市场口碑,AFE公司逐渐在电子行业中崭露头角,成为了光纤技术领域的佼佼者。

以上是第一个故事的示例,若您想要探索更多关于AFE公司的发展故事,请输入继续。

(注:由于我无法实时获取具体公司的实际发展故事,以上故事为虚构内容,仅用于展示故事编写风格和结构。如果您需要真实、具体的故事,请提供更多关于AFE公司的信息,以便我能为您编写更贴近实际的内容。)

Celduc Relais公司的发展小趣事

Celduc Relais公司自创立之初,便以技术创新为核心驱动力。在公司的早期发展阶段,研发团队成功开发了一款具有颠覆性的继电器产品,该产品在性能、稳定性和寿命等方面均达到了行业领先水平。这一突破性的技术创新不仅为公司赢得了市场的广泛认可,也为后续的产品线扩展和技术升级奠定了坚实基础。

峰岹(Fortior Tech )公司的发展小趣事

为了确保产品质量和客户满意度,Celduc Relais公司投入大量资源建立了完善的质量管理体系。公司引入了先进的质量管理工具和方法,通过严格的质量控制和持续改进,不断提升产品质量和服务水平。这一举措不仅增强了客户对公司的信任,也为公司在激烈的市场竞争中保持领先地位提供了有力保障。

C-TON Industries公司的发展小趣事

在电子行业中,产品质量的稳定性是企业生存的关键。C-TON深知这一点,因此从公司成立之初就高度重视品质管理。公司建立了一套严格的质量检测体系,确保每一件产品都符合高标准的质量要求。此外,C-TON还不断引进先进的生产设备和技术,提升生产效率和产品质量。这些努力使得C-TON的产品在市场上获得了良好的口碑,也为其赢得了众多忠实客户。

Bals Elektrotechnik GmbH & Co KG公司的发展小趣事

进入1950年代,随着联邦政府对卡车运输的规范,Günter Bals意识到单一的运输业务已无法满足公司长远发展的需要。于是,他与妻子伊丽莎白共同创立了Bals Elektrotechnik GmbH,开始涉足电气连接器的生产。这一转型对Bals来说既是挑战也是机遇,他们凭借对市场的敏锐洞察和不懈的技术研发,成功推出了第一批铝制连接器,并逐步打开了市场。

博众电气(BOZHONG ELECTRIC)公司的发展小趣事

博众电气始终坚信,品质是企业生存和发展的根本。因此,公司始终将品质管理放在首位,并严格执行ISO9001等国际质量管理体系标准。

为了进一步提升产品品质和管理水平,博众电气还积极申请并通过了多项国际认证。这些认证不仅证明了博众电气的产品品质和管理水平达到了国际先进水平,还为公司的国际化发展提供了有力保障。

问答坊 | AI 解惑

火灾自动报警系统的管理

火灾自动报警系统是由触发装置、火灾报警装置、火灾警报装置以及具有其它辅助功能装置组成的,它具有能在火灾初期,将燃烧产生的烟雾、热量、火焰等物理量,通过火灾探测器变成电信号,传输到火灾报警控制器,并同时显示出火灾发生的部位、时间等, ...…

查看全部问答>

与磁盘相关的一些知识与问题

   我下面提出的一些问题是与磁盘相关的。        对于一个给定的硬盘而言,其中包含多个柱面(cylinder),同时每个柱面又由多个磁道(track)组成,磁道又由多个扇区(sector)组成。我的问题是,任意两个磁道所包含 ...…

查看全部问答>

请教个问题

我现在做的工作很简单,就控制IC实现某些功能,然后在把这写控制参数写入EEPROM 采用WINDOWS和他通讯。IIC控制 请问我现在干的这工作属于什么东东啊? 这能叫嵌入式?驱动开发? 还是垃圾工作?…

查看全部问答>

WIFI如何发送数据包

WIFI设备与无线路由器连接上后,如何获取它的IP地址,WIFI发送数据包使用的通信协议是什么,发送数据包时需要调用哪些函数…

查看全部问答>

跪求 pclint 工具包。

各位大哥大姐,平时开发用不用这个工具?用的话帮忙给我一份,或者给个连接也好,谢谢了…

查看全部问答>

帮看看这个程序那里有点点问题

各位高手帮看看我这个程序那里有问题总是编译不成功, 这程序是一个按键(PORTB.4)按下时LED灯亮 #include <tiny13.h> #include <delay.h>#define   LED      PORTB.3#define   K & ...…

查看全部问答>

好奇的问问,TI的Stellaris 有多少人参与研发啊?

  从1美圆的ARM流明开始到现在被TI收购后   TI的Stellaris  CORTEX M3有多少人参与的研发啊?…

查看全部问答>

关于DAC0832

DAC0832后面接放大电路可以把电流转换成电压,可是转换后的电压都是5v,15v的,可不可以转换成100多v的,后面可以接一个节能灯泡的呢?求电路图…

查看全部问答>

请问TMS320F206这款芯片烧写问题

请问TMS320F206这款芯片烧写问题,有没哪个仪器可以支持的呢?现在的仪器都很少支持这个芯片,比较麻烦,在DOS下操作的话,技术又有限请问下各位大大,有知道的貌似告诉下,仿真器,编程器,烧录器,都可以 能烧尽这款IC就行  谢谢…

查看全部问答>

求助STM32F103的IrDA问题

菜鸟新学STM32,因为做IrDA项目需求,看到STM32F103内嵌IrDA-SIR的编码和解码单元,但是找不到IrDA-IN和IrDA-OUT的端口。是不是哪个复合功能的GPIO需要配置,还是就是USART的TX和RX引脚?是不是所有的USART都具有IrDA功能?请哪位大虾指教。如果哪 ...…

查看全部问答>