技术文档

c11单片机 单片机系统电路设计解析

小编 2024-10-06 技术文档 23 0

单片机系统电路设计解析

以下介绍单片机最小系统电路设计,单片机最小系统主要由电源、复位、振荡电路以及扩展部分组成。对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源模块的稳定可靠是系统平稳运行的前提和基础。

1、电源

在使用STC89C52RC单片机的时候,工作电压:5.5V-3.4V(5V单片机),这个地方就说明我们这个单片机正常的工作电压是个范围值,只要电源VCC在5.5V到3.4V之间都可以正常工作,电压超过5.5V是绝对不允许的,会烧坏单片机,电压如果低于3.4V,单片机不会损坏,但是也不能正常工作。

2、振荡电路

单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。

晶振

晶振通常分为无源晶振和有源晶振两种类型,无源晶振一般称之为crystal(晶体),而有源晶振则叫做oscillator(振荡器)。

有源晶振是一个完整的谐振振荡器,他是利用石英晶体的压电效应来起振,所以有源晶振需要供电,当我们把有源晶振电路做好后,不需要外接电路,它就可以主动产生振荡频率,并且可以提供高精度的频率基准,信号质量比无源信号好。

有源晶振通常有4个引脚,VCC,GND,晶振输出引脚和一个没有用到的悬空引脚。无源晶振有2个或3个引脚,如果是3个引脚的话,中间引脚是晶振的外壳,使用时要接到GND,两侧的引脚就是晶体的2个引出脚了,这两个引脚作用是等同的,就像是电阻的2个引脚一样,没有正负之分。对于无源晶振,就是用我们的单片机上的两个晶振引脚接上去即可,而有源晶振,只接到单片机的晶振的输入引脚上,输出引脚上不需要接,如图1和图2所示。

图1 无源晶振接法

图2 有源晶振接法

3、复位电路

我们先来分析一下我们的复位电路,如图3所示。

图3 单片机复位电路

当这个电路处于稳态时,电容起到隔离直流的作用,隔离了+5V,而左侧的复位按键是弹起状态,下边部分电路就没有电压差的产生,所以按键和电容 C11以下部分的电位都是和GND相等的,也就是0V电压。我们这个单片机是高电平复位,低电平正常工作,所以正常工作的电压是0V电压,完全OK,没有问题。

4、独立按键

通常的按键分为独立式按键和矩阵式按键两种,独立式按键比较简单,并且与独立的输入线相连接,如图4所示

图4 独立式按键电路图

4条输入线接到单片机的IO口上,当按键K1按下时,+5V通过电阻R1然后再通过按键K1最终进入GND形成一条通路,那么这条线路的全部电压都加到了R1这个电阻上,KeyIn1这个引脚就是个低电平。当松开按键后,线路断开,就不会有电流通过,那么KeyIn1和+5V就应该是等电位,是一个高电平。我们就可以通过KeyIn1这个IO口的高低电平来判断是否有按键按下。

这个电路中按键的原理我们清楚了,但是实际上在我们的单片机IO口内部,也有一个上拉电阻的存在。我们的按键是接到了P2口上,P2口上电默认是准双向IO口,我们来简单了解一下这个准双向IO口的电路,如图5所示。

图5 准双向IO口结构图

当内部输出是高电平,经过一个反向器变成低电平,NPN三极管不会导通,那么单片机IO口从内部来看,由于上拉电阻R的存在,所以是一个高电平。当外部没有按键按下将电平拉低的话,VCC也是+5V,他们之间虽然有2个电阻,但是没有压差,就不会有电流,线上所有的位置都是高电平,这个时候我们就可以正常读取到按键的状态了。

当内部输出是个低电平,经过一个反相器变成高电平,NPN三极管导通,那么单片机的内部IO口就是个低电平,这个时候,外部虽然也有上拉电阻的存在,但是两个电阻是并联关系,不管按键是否按下,单片机的IO口上输入到单片机内部的状态都是低电平,我们就无法正常读取到按键的状态了。

5、矩阵按键

矩阵按键和独立按键的关系

我们在使用按键的时候有这样一种使用经验,当需要多个按键的时候,如果做成独立按键会大量占用IO口,因此我们引入了矩阵按键,如图6所示,使用了8个IO口来实现16个按键。

图6 矩阵按键

其实独立按键理解了,矩阵按键也简单,我们来分析一下。图6中,一共有4组按键,我们只看其中一组,如图7所示。大家认真看一下,当KeyOut1输出一个低电平,KeyOut2、KeyOut3、KeyOut4这三个输出高电平时,是否相当于4个独立按键呢。

图7 矩阵按键变独立按键

编辑点评: 本文介绍了单片机最小系统的电路设计,单片机系统里都有晶振,晶振通常分为无源晶振和有源晶振两种类型。对单片机最小系统的电源模块、复位电路和振荡电路进行了详细的分析,理解单片机最小系统的设计对工程师是有利的。

最新电子行业资讯、教程以及开发板样片申请,请关注“云汉电子社区”官方微信公众号ickeybbs

单片机实例分享,RFID卡读写器的设计

RFID(Radio Frequency Identification,射频识别)技术是一种非接触自动识别技术,利用射频信号通过空间耦合(电感或电磁耦合)实现无接触信息传递,并通过所传递的信息达到识别目的。

RFID卡技术成功地融合RFID技术和IC卡技术,解决了无源(卡中无电源)和免接触的难题,是电子信息技术领域的一大突破。由于RFID卡方便、耐用,且可高速通信、多卡操作,在门禁安防、身份识别、公共交通等众多领域正逐渐取代传统的接触式IC卡,在市场上所占的份额越来越大,应用日益广泛。高速公路、停车场、加油站收费,智能卡水表、电表、煤气表等应用,也可使用RFID卡。从长远角度看,RFID卡将会替换目前广泛使用的接触式IC卡。

RFID 卡的突出优点

与接触式IC卡相比,RFID卡具有以下优点。

(1)高可靠性:由于无触点,可最大限度地避免由接触读写而产生的各种故障,提高了抗静电和抗环境污染能力,因此提高了使用的可靠性,延长了读写设备和卡片的使用寿命。

(2)易用性:操作方便、快捷,无需插拔卡,完成一次操作只需0.1~0.3s。使用时,卡片可以任意方向掠过读写设备表面。

(3)高安全性:序列号是全球唯一的,出厂后不可更改。卡与读写设备之间采用双向互认验证机制,即读写器验证卡的合法性,同时卡验证读写器的合法性。通信过程中所有的数据都加密,卡片上不同分区的数据可用不同的密码和访问条件进行保护。

(4)高抗干扰性:对有防冲突电路的RFID卡,在多卡同时进入读写范围内时,读写设备可一一对卡进行处理,抗干扰性高。

(5)一卡多用:卡片上的数据分区管理,可以很方便地实现一卡多用。

(6)多种工作距离:作用距离从几厘米到几米,适应不同的应用场合。

RFID 卡读写器工作原理

RFID卡的结构如图15.1所示。

图15.1 RFID 卡的结构

RFID卡读写器是连接RFID卡与应用系统间的桥梁,RFID卡读写器的基本任务就是启动RFID卡,与RFID卡建立通信,在应用系统和卡片间传递数据。

RFID卡读写器将要发送的信息编码后加载到一固定频率的载波上,当RFID卡(卡片内有一个谐振电路,其频率与读写器发送的载波频率相同)进入读写器的工作区域后,谐振电路发生谐振并产生电荷积累,当电荷积累到一定数值时,就能为RFID卡内的电路提供工作电压,使卡内的芯片开始正常工作,处理读写器发送的数据信息。RFID卡系统的模型如图15.2所示。

一个完整的RFID卡读写器应包括以下几个部分(见图15.3):单片机、射频处理模块、天线、与PC的通信接口以及键盘、显示等部件。

图15.2 RFID卡系统模型图

图15.3 系统设计框图

单片机是读写设备的数据处理控制核心。它不仅要控制射频处理模块完成对RFID卡的读写,还要负责通过通信接口与PC进行通信,并对键盘、显示设备等其他外部设备进行控制。

射频处理模块负责射频信号的处理和数据的传输,完成对RFID卡的读写。

天线的作用有两个:一是产生电磁能量,为卡片提供电源;二是在读写设备和卡片之间传送信息。天线的有效电磁场范围就是系统的工作区域。

与PC的通信接口以及键盘、显示等部件主要实现与PC的通信,以及操作时的人机界面。

根据RFID卡与读写器之间能可靠交换数据的距离,RFID卡天线和读写器之间的耦合可以分为3类:密耦合系统、遥耦合系统和远距离系统。

密耦合系统的典型作用距离范围是0~1cm。在实际应用中,必须把卡插入阅读器中或者放置到阅读器的天线表面。密耦合系统的卡与阅读器之间是电感耦合,其工作频率一般在30MHz以下。密耦合系统适合于安全要求较高,但不要求作用距离的应用系统,如电子门锁等。

遥耦合系统的典型作用距离可以达到1m。遥耦合系统又可以细分为近耦合系统和疏耦合系统,前者的典型作用距离为15cm,后者为1m。所有遥耦合系统在卡和阅读器之间都是电感耦合,典型工作频率为13.56MHz,也有其他频率,如6.75MHz、27.125MHz或者135kHz以下。

远距离系统的典型作用距离是1~10m,个别系统也有更远的作用距离。所有的远距离系统的卡和阅读器之间都是电磁反向散射耦合,在微波范围内用电磁波工作,发送频率通常为2.45GHz,也有系统使用5.8GHz和24.125GHz的频率。

Philips公司的Mifare 卡

Philips公司是世界上最早研制RFID卡的公司之一,其Mifare技术已经被定为IS0/IEC14443 TYPE A国际标准。使用Mifare芯片的RFID卡占世界范围内同类智能卡销量的60%以上。这里简单介绍一下Mifare standard卡:MF 1 IC S50(简称Mifare 1卡)。

Mifare 1卡除了微型IC芯片及一个高效率天线外,无任何其他元器件。卡片电路不用任何电池供电,工作时的能量由读写器天线发送频率为13.56MHz无线电载波信号,以非接触方式耦合到卡片天线上产生电能,电压通常可达2V以上。标准操作距离可达10cm,卡与读写器之间的通信速率高达106kbit/s。芯片设计有增/减值的专项数学运算电路,适合公共交通、地铁车站等行业的检票/收费系统,其典型交易时间最长不超过100ms。

Mifare 1卡芯片内含1KB的EEPROM存储器,其空间被划分为可由用户单独使用的16个扇区。数据的擦写次数超过10万次,数据保存期大于10年,抗静电保护能力达2kV。

Mifare 1卡的芯片在制造时具有全球唯一的序列号,具有先进的数据通信加密和双向密码验证功能,还具有防冲突功能,可以在同一时间处理重叠在读写器天线有效工作距离内的多张卡片。

Mifare 1芯片内部结构较为复杂,可划分为射频接口、数字处理单元、EEPROM这3大部分,其中数字处理单元又分为若干小部分,如图15.4所示。

◆射频接口:在RF射频接口电路中,含有波形转换模块。它可接收读写器上的13.56MHz的无线电调制频率,一方面送调制/解调模块,另一方面进行波形转换,然后对其整流、滤波,接着对电压进行稳压等进一步处理,最终输出供给卡上的电路工作。

图15.4 Mifare 1 卡逻辑框图

◆防冲突模块:如有多张Mifare 1卡处在读写器的天线的工作范围之内时,防冲突模块的防冲突功能将被启动,根据卡片的序列号来选定一张卡片。被选中的卡片将直接与读写器进行数据交换,未被选中的卡片处于等待状态。

◆认证模块:在选中一张卡片后,任何对卡片上存储区的操作都必须经过认证,只有经过密码校验,才可对数据块进行访问。Mifare 1卡片上有16个扇区,每个扇区都可分别设置各自的密码,互不干涉。因此每个扇区可独立地应用于一个应用场合,整个卡片可以设计成“一卡通”形式来应用。

◆控制和算术运算单元:这一单元是整个卡片的控制中心,它主要对整个卡片的各个单位进行微操作控制,协调卡片的各个步骤,同时还对各种收/发的数据进行算术运算处理、CRC运算处理等。

◆EEPROM接口:连接到EEPROM。

◆加密单元:Mifare的CRYPTOL数据流加密算法将保证卡片与读写器通信时的数据安全。

表15.1 Mifare 1卡的存储器组织结构

◆EEPROM:容量为1KB,分16个扇区,每扇区有4个块,每块16字节。其组织结构如表15.1所示。每个扇区的块3也称作尾块,是扇区的控制块,其结构如表15.2所示。前6个字节为密码A(KeyA),永远不能被读出,但在满足一定条件下,可被改写;后6个字节为密码B(KeyB),当密钥使用时是不可读的,但用来存储数据时则是可读的;中间4个字节为权限位,存放本扇区的4个数据块的访问条件。控制块使用两个密码,是为了给用户提供多重控制方式。例如,用户可以用一个密码控制对数据块的读操作,用另一个密码控制对数据块的写操作。其余3个块是一般的数据块。扇区0中是特殊的块,包含了厂商代码信息,在生产卡片时写入,不可改写。其中第0~4字节为卡片的序列号,第5个字节为序列号的校验码,第6字节为卡片的容量“SIZE”字节,第7~8字节为卡片的类型号(Tagtype)字节,其他字节由厂商另加定义。

表15.2中,C1、C2、C3三个数据位表达各块的具体访问权限,下标0、1、2、3分别表示在扇区内的块号。“C13、C23、C33”即为扇区第3块(尾块)的访问权限。为了可靠,访问条件的每一位都同时用原码和反码存储,共存储了两遍。尾块的读写权限的意义如表15.3所示。

表15.2 尾块组成及访问权限字节结构

表15.3 尾块的权限代码与访问权限

(注:N表示不能,A表示KeyA,B表示KeyB,A/B表示KeyA或者KeyB)

在空卡状态下,每个扇区的尾块数据(16 进制)为:“0x 000000000000 FF078069 FFFFFFFFFFFF”。空卡时的密码A和密码 B 均为“0x FFFFFF”,由于密码A 不可读,读出的数据显示为“0x 000000”。在空卡默认读写权限下可以利用密码A对所有块进行读写操作,以及更改各块的读写权限,但不可以利用密码B进行读写操作(此时密码B可读)。

权限位为:“0x FF078069”,由表15.2,得:

C13=0 C12=0 C11=0 C10=0

C23=0 C22=0 C21=0 C20=0

C33=1 C32=0 C31=0 C30=0

C13C23C33=001,根据表15.3,密码A不可读,但通过密码A校验后,可改写密码A,权限字节及密码B的读写权限均可用密码A读写。

另外,由表15.3可知尾块的下列属性:密码A永远不可读,因此一旦设定就必须记住,不过在000、100、001、011几种情况下可以改写;访问权限字节仅在001、011、101三种状态下可写;密码B在000、100、001、011四种状态下可写,在000、010、001三种状态下可读(此时密码B的6个字节用于存储数据,不再作为密钥)。

数据块的读写权限如表15.4所示。对数据块的增值、减值操作,仅在状态“110”和“001”下可进行。而第0块(厂商数据块)虽然也属于数据块,但是它不受权限字节影响,永远只读。在空卡情况下,数据块的读写权限代码C1iC2iC3i=000,密码A和密码B的读写访问权均为“A/B”,表示可用密码A或者是密码B对各数据块进行读写,但实际上由于在空卡默认状态下密码B是可读的,所以不可用密码B读写数据。

表15.4 数据块(i=0、1、2)的权限代码与访问权限

电路设计

RFID卡读写器主板的电路原理图如图15.5所示,由单片机、与PC的通信接口、键盘、LCD显示等部分组成。RFID卡读写器射频处理模块及天线等的电路图如图15.6所示。

图15.5 RFID 卡读写器主板电路原理图

图15.6 RFID 卡读写器射频处理模块及天线电路图

射频处理模块(也称为射频基站模块)是射频卡读写器的关键部件,RFID卡读写器通过该模块与射频卡进行数据通信。射频处理模块的主要部件就是射频基站芯片,这里我们选用Philip公司的MFRC522。它是13.56MHz非接触式通信中高集成读卡IC系列中的一员,利用先进的调制和解调概念,完全整合了在13.56MHz下任何类型的被动非接触式通信方式和协议。它内部包括微控制器接口单元、模拟信号处理单元、IS014443A规定的协议处理单元,以及Mifare卡特殊的Cryptol安全密钥存储单元,可以与所有兼容Intel或Motorola总线的微控制器直接连接,其内部还具有64个字节的先入先出(FIFO)队列,可以和微控制器实现高速传输数据。

MFRC522内部的发送器部分无需增加有源电路就能够直接驱动近操作距离的天线(可达10cm),接收器部分提供一个高效的解调和解码电路,数字部分处理ISO14443A帧和错误检测。

天线部分主要包括低通滤波器、接收电路、天线匹配电路和天线线圈,天线拾取的信号经过天线匹配电路送到RX脚,MFRC522的内部接收器对信号进行检测和解调,并根据寄存器的设定进行处理。然后数据被发送到并行接口,由单片机进行读取。制作完成的实验样机如图15.7所示。

图15.7 制作完成的实验样机

软件设计及使用

程序采用结构化模块方式设计,条理清晰、结构完善,便于整个程序的装配。限于文章的篇幅,本文不对程序作详细介绍,这里只对相关的读写过程作简单介绍。

读写卡是一个非常复杂的程序执行过程,要执行一系列的操作指令,调用多个子函数,包括装载密码、询卡、防冲突、选卡、验证密码、读写卡、停卡等。这一系列的操作必须按固定的顺序进行。在没有Mifare 1卡片进入射频天线有效范围时,LCD显示“欢迎光临”;当有Mifare 1卡片进入到射频天线的有效范围时,读写器验证卡及密码成功后,将卡号、消费金额、充值金额和余额等数据作为一条记录存入EEPROM存储器中,并同时在LCD上显示出来。

1. 写(设置)RFID 卡

读卡器对卡进行数据的读写、密码的管理和功能的测试,可以进行寻卡、防冲突、选择和终止等功能。可对RFID卡的16个扇区进行密码的下载及A、B组密码的选择。可对每个扇区3个块的数据进行读写。块值操作包括初始化、读值、加值、减值、密码的修改等。

2. 读 RFID 卡

首先寻卡,进入卡处理程序,紧接着防冲突,成功之后,加载密码,之后便可对卡进行数据的读取和操作。完成之后等待卡的拿开,确保每次只读一次数据。

3. 读写器与射频通信程序

RFID卡与读写器间的通信流程如图15.8所示,各功能定义如下。

图15.8 RFID 卡与读写器间的通信流程

(1)复位应答:射频卡的通信协议和通信波特率是定义好的,当有射频卡进入读写器的操作范围时,读写器以特定的协议与它通信,验证卡片的卡型。

(2)防冲突机制:当有多张卡进入读写器操作范围时,防冲突机制会从其中选择一张进行操作,未选中的则处于空闲模式,等待下一次选卡,该过程会返回被选卡的序列号。

(3)选择卡片:选择被选中的卡的序列号,同时返回卡的容量代码。

(4)3次互相确认:选定要处理的卡片之后,读写器就确定要访问的扇区号,并对该扇区密码进行密码校验。在3次相互认证之后,就可以通过加密流进行通信。当选择另一扇区时,则必须进行另一次密码校验。

(5)对数据块的操作:读一个块、写一个块、对数值块进行加值、对数值块进行减值、将卡置于暂停工作状态。

进入等待状态时,RFID卡读写器的屏幕上显示“欢迎光临”(见图15.9)。图15.5中按键S1~S4的作用如下:按动S1后,读写器进入消费工作模式(见图15.10);按动S2后,读写器进入充值模式(见图15.11);按动S3后,读写器进入注册模式(见图15.12);按动S4后,读写器进入读卡工作模式(见图15.13)。

图15.9 进入等待状态

图15.10 消费工作模式

图15.11 充值模式

图15.12 注册模式照片

图15.13 读卡工作模式

相关问答

c语言怎么取一位小数?

应该改为print("%.1f",x),——(1的前面有个小数点)表示输出精确到小数点后1位。如果实际数字不足1位,则在末尾补0,若大于1位,则按四舍五入取前一位。具体...

c语言有什么数组?

C语言中都有什么类型数组?我们常见的C需要类型数组有:char:只允许输入字符,int:是整型变量,输入整数,范围不大,在-32767到32767,float:输入可以使小...C...

c语言中怎么表示开根号? - Akiba 的回答 - 懂得

可以调用头文件math.h中的sqrt()函数。参考代码如下:对36开根号:#include#includeintmain(){floata=36.0;a=sqrt(a);printf(&q...

c语言数列的定义?

C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组。在C语言中使用数组必须先进行定义,一维数组的定义方式为:类型说...

c语言中的a>>1是什么意思?

a>>=1等价于a=a>>1表示将a右移一位,即,将低位抛弃,高位补零。C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处...

c语法代表什么?

处...尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理...

有没有谁给我推荐一下,规模大的隧道可变限速牌生产安装厂家...

[回答]汽车限速器的工作原理要根据车辆的油门是什么类型的,电子油门的汽车的汽车限速器工作原理是:电子油门踏板叉车系统包括:油门踏板、电子控制单元(ECU...

摩托车直流点火的不用电瓶就熄火,是哪里的问题呢?

既然叫直流点火器,顾名思义,就是直流电压供电的点火器,车上的直流电压供电,指的是电瓶供电,也就是大概12伏供电,往往都建议配合电瓶来使用,你摘掉电瓶了,...但这...

C语言中的 -是什么意思 - Annette1907 的回答 - 懂得

修饰符格式说明、意义M%md以宽度m输出整型数,不足m时,左补空格0m%0md以宽度m输出整型数,不足m时,左补零m,n%m.nf以宽度m输出实型小数,小数位...

C语言如何弹出提示框?

目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名...

猜你喜欢