最近工作各种忙啊,不过还好终于今天抽点时间来写点东西咯,好了不说废话了,上篇主要介绍了硬件部分的设计,今天就说说程序设计吧。
MF RC522 利用了先进的调制和解调概念,完全集成了在13.56MHz 下所有类型的被动非接触式通信方式和协议。支持 ISO14443A 的多层应用。其内部发送器部分可驱动读写器天线与ISO 14443A/MIFARE卡和应答机的通信,无需其它的电路。接收器部分提供一个坚固而有效的解调和解码电路,用于处理ISO14443A 兼容的应答器信号。数字部分处理ISO14443A 帧和错误检测(奇偶 &CRC)。此外,它还支持快速CRYPTO1 加密算法,用于验证MIFARE 系列产品。MFRC522 支持MIFARE?更高速的非接触式通信,双向数据传输速率高达424kbit/s。
以上为RC522的介绍咯大家随意看看就行了,其实个人觉得现在的大环境要求我们这些做技术的对芯片不至于非常了解而就是知道个大概,然后呢每家公司都会给自己的芯片写各种API以缩短我们的开发周期与开发成本。似乎这是一种大的趋势,从TI的MSP430也看到了这种趋势。毕竟调用API总比自己去写来的方便与安心,有利必有弊咯,至于弊端嘛肯定是做硬件的越来越趋于软件而渐渐的丢失一种硬件思维对产品的升级越来越无从下手。还好本人能力有限所以只能将就的看API咯,毕竟人家写的API有许多值得俺学习的地方好了贴点RC522的驱动程序完整程序会在附件中上传。
本人做了些简单的解释。
/******************************************************************/
//功 能:读RC522寄存器
//参数说明:Address[IN]:寄存器地址
//返 回:读出的值
//******************************************************************/
unsigned char ReadRawRC(unsigned char Address)
{
unsigned char i, ucAddr ;
unsigned char ucResult=0 ;
NSS522_0 ; // spi接口选通
SCK522_0 ; // spi的时钟拉低。这两句为两个宏定义具体可以照自己的接法做相关定义
ucAddr = ((Address<<1)&0x7E)|0x80 ;
for(i=8;i>0;i--)
{
if((ucAddr&0x80)==0x80)
SI522_1 ;
else
SI522_0 ;
SCK522_1 ;
ucAddr <<= 1 ;
SCK522_0 ;
}
for(i=8;i>0;i--)
{
SCK522_1 ;
ucResult <<=1 ;
ucResult |= SO522 ;
SCK522_0 ;
}
SCK522_0 ;
NSS522_1 ;
return ucResult ;
}
//******************************************************************/
//功 能:写RC522寄存器
//参数说明:Address[IN]:寄存器地址
// value[IN]:写入的值
//******************************************************************/
/*
void WriteRawRC(unsigned char Address, unsigned char value)
{
unsigned char i, ucAddr ;
NSS522_0 ;
SCK522_0 ;
ucAddr = ((Address<<1)&0x7E) ;
for(i=8;i>0;i--)
{
if ((ucAddr&0x80)==0x80)
{ SI522_1; }
else
{ SI522_0; }
SCK522_1;
ucAddr <<= 1;
SCK522_0;
}
for(i=8;i>0;i--)
{
if ((value&0x80)==0x80)
{ SI522_1; }
else
{ SI522_0; }
SCK522_1;
value <<= 1;
| | |
| - 关闭
- [url=]上传图片[/url]
- [url=]相册图片[/url]
- [url=]网络图片[/url]
全选 将选中的图片保存到相册: ------- +创建新相册
ng
|
SCK522_0;
}
SCK522_0;
NSS522_1;
}
*/
剩下的代码大家想看的话如下附件中上传。
nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。
其代码我也不做过多解释了上传驱动源码想学习的大家自己看吧。
下边来点照片并上传点开发资料有兴趣的可以看看
可以看到本人的名字以及论坛的ID号。以及卡的UID号
这个即为开发板的主要接线图具体硬件知识可以参考硬件设计篇