历史上的今天
返回首页

历史上的今天

今天是:2025年01月29日(星期三)

2020年01月29日 | 基于STM8的RFID程序设计

2020-01-29 来源:eefocus

好久好久没有更新了~


现在开始在实习,正好公司最近在做一款宾馆用的插卡取电模块,用的是STM8配合RFID MFRC522模块实现的,国庆没事正好在淘宝上买了一款RFID模块,配合自己的STM8,体验一下。


MFRC522 模块使用了支持 SPI UART I2C,但是一般都使用SPI接口开发(难道是因为淘宝上的程序都是SPI?!)


MFRC522是个很有故事的芯片,因为打开它的数据手册,映入眼帘的是一大团寄存器,我去这尼玛是哪家新出的单片机,说好的芯片不就是几个引脚的故事吗!


不过好在这些寄存器的操作我们不用去了解,直接使用库函数即可。


关于接口

因此在我们移植程序的时候,需要将STM8的 SCK设置为输出 MOSI设置为输出 MISO设置为上拉输入 NSS设置为输出


关于SPI的通信原理

关于SPI的时序要求

STM8属于单周期单片机,时钟一般使用16Mhz,所以一个机器周期 1s/16 000 000 = 62.5 ns 所以说是符合SPI时序要求的。


关于复位


MFRC522要求复位脉宽至少100ns 然而从前面可以知道,STM8的机器周期是62.5ns虽然说实际上可能有出入,不过为了保险起见,我们在写复位程序的时候这么写


MF522_RST_SET();                              //复位周期至少100 NS


 


asm("nop");                  


                asm("nop");


                asm("nop");


    MF522_RST_CLR();


                asm("nop");


                asm("nop");


asm("nop");                   


 


    MF522_RST_SET();


                asm("nop");


                asm("nop");


                asm("nop");


已知asm("nop");是一个机器周期那么3个nop加上执行SRT/CLR语句的指令时间,就可以达到100ns的复位宽度。我觉得大了很多。。。


关于程序有毒


是的,这不是我手滑,真的有毒!


淘宝上的程序在改数值操作上面和备份操作上面是有毒的


而这个毒在该数值和备份上面是一样的,下面就已数值改写为例(扣款/充值)来说说


首先放程序(淘宝代码)

红框框里面就是有毒的地方,这里的功能是封装一个数据缓冲区修改数值的数组,发送给缓冲区,MFRC522会对所有指令返回一个确认值,这也是之前所有程序里面的校验方式,唯独在这里缓冲区的操作是不返回确认值的

这里说到卡片无返回,然而程序依旧进行了校验,这就导致了实际运行中卡在这里出不去的情况,于是注释掉以后强行忽略这个步骤。反正后面是用起来也没有发生数据错误的情况,我觉得更深入的解决方案还需要再学习。


说到这里MFRC522淘宝上51版本的源代码移植就算是完成了,下面就是配置主程序的串口以及定时器操作了,不过这不是我们今天的主角。就不多说了。RFID的只是还有很多,比如M1卡结构,控制字的使用。留待以后再说(主要是没人看)。

最后上一张模块大图

推荐阅读

史海拾趣

Elcos AG公司的发展小趣事

随着国内市场的饱和,Elcos AG开始寻求国际化拓展的机会。公司首先在欧洲市场建立了销售网络,通过与当地合作伙伴的紧密合作,逐渐打开了欧洲市场的大门。随后,Elcos AG又将目光投向了亚洲和北美市场,通过设立海外办事处和参加国际展会等方式,积极推广公司品牌和产品。在国际市场的竞争中,Elcos AG凭借其卓越的产品品质和完善的售后服务体系,赢得了众多客户的信赖和支持。

Array Microsystems Inc公司的发展小趣事

在取得初步成功的基础上,Array Microsystems Inc深知技术创新是企业持续发展的核心动力。因此,公司加大了对研发的投入力度,不断推出新的阵列传感器产品和技术。这些新产品不仅具有更高的性能和更低的成本,还满足了市场不断变化的需求。通过持续的创新和研发,Array Microsystems Inc在电子行业中保持了领先地位。

Aptiv公司的发展小趣事

作为一家具有社会责任感的企业,Aptiv始终关注社会公益事业。公司积极参与各项社会活动和慈善捐赠,为改善社会环境和提升公众生活质量做出了积极贡献。同时,Aptiv还注重在运营所在城市推动社区发展,通过创造就业岗位、支持教育事业等方式,为当地社会经济的繁荣做出了贡献。

Cermetek Microelectronics公司的发展小趣事

随着公司规模的扩大和业务的增长,Cermetek Microelectronics公司开始实施国际化战略。公司积极拓展海外市场,与多个国家和地区的客户建立了合作关系。同时,公司还在海外设立了研发中心和生产基地,以更好地服务全球客户。这种全球布局不仅提升了公司的国际竞争力,也为公司的长远发展奠定了坚实的基础。

ASI [ASI Semiconductor, Inc]公司的发展小趣事

ASI Semiconductor, Inc.(以下简称ASI)的故事始于1979年,当时它在美国加利福尼亚州北好莱坞成立。作为一家初创企业,ASI专注于设计、供应和市场先进的高功率、脉冲射频晶体管和托盘。在早期,ASI以其独特的技术视角和市场需求洞察,迅速在行业中站稳了脚跟。通过与摩托罗拉、飞利浦等公司的合作,ASI开始为商用航空电子设备、雷达、医疗和工业应用提供高质量的射频功率晶体管。这种初步的成功为ASI日后的快速发展奠定了坚实的基础。

FEIG ELECTRONIC公司的发展小趣事

FEIG ELECTRONIC成立于1978年,作为德国射频识别(RFID)系统的先驱,公司从一开始就专注于RFID技术的研发与制造。在创立初期,FEIG凭借其独特的技术视角和对市场需求的敏锐洞察,成功开发了一系列RFID系统,为物流、零售等行业提供了有效的解决方案。通过不断的技术创新和市场拓展,FEIG逐渐在RFID领域崭露头角。

问答坊 | AI 解惑

AT201无线防盗报警器

该系统是当今先进的防盗报警系统,以求助、防盗融为一体,是现代家庭理想的保安器材。最适用于家庭、商铺的防盗报警。        探头发现盗情后,主机自动拨打您预存的电话号码(多至10个),如手机、固定电 ...…

查看全部问答>

智能全数字锁相环的设计

摘要: 在FPGA片内实现全数字锁相环用途极广。本文在集成数字锁相环74297的基础上进行改进,设计了锁相状态检测电路,配合CPU对环路滤波参数进行动态智能配置,从而使锁相环快速进入锁定状态,在最短时间内正常工作并且提高输出频率的质量。 关键词 ...…

查看全部问答>

Toyato的 Hybrid和汽车方面的课程资料

无意在网上找到的,因此把目录整理出来,有兄弟需要的发邮件给我yulzhu@gmail.com,注明需要哪一部分,直接发怕有些问题。 混合动力有关材料 Toyota Series - Hybrid Hybrid01 Hybrid System Overview.pdf   Hybrid02 Hybrid System ...…

查看全部问答>

EVC里面有否办法调整窗口的z次序分配规则

   WinCE里面做Win32应用程序,十分郁闷的就是其控件Z次序分配与VS里面完全相反,VS里面后创建的控件在前,但是在CE里面却是先创建的控件在前,造成很多不便,比如说要声明一个Group Button,再以这个Group Button作为父窗口在里面再创建 ...…

查看全部问答>

求教个整流电路的问题

我用了个整流电路,用multisim仿真,负载开路时,测其内阻,发现竟然有2M欧姆左右,怎么会那么大?如图。…

查看全部问答>

基于STM32的IAP设计文档

感觉不错, 我就把原版的word转换为pdf分享过来了,资料感觉还是pdf比较好,各种pdf阅读器都可以,word不行,微软自己都好几个版本呢,、…

查看全部问答>

win7 32位旗舰版安装Quartus II13.0时安到最后老是出错,请问有谁知道什么原因吗

win7 32位旗舰版安装Quartus II13.0时安到最后老是出错,请问有谁知道什么原因吗…

查看全部问答>

ccs3.3中使用profile看指令周期的问题

使用tms320c6713的芯片,在ccs3.3环境下使用profile 来观察代码所在的range所消耗的时间情况,这段代码将1000个16bit的有符号整形转换为float型,函数内容如下所示 void dataFormatTrs(Int16 *input, float *output, int size) {   in ...…

查看全部问答>