.
智能遥控汽车门锁设计
苏州大学应用技术学院09电子转(学号)[庄尚]
目录
前言1
第1章绪论3
第1.1节汽车车门控制电路的现状3
第1.2节课题研究的意义4
第2章系统设计5
第2.1节汽车车门控制电路系统的总体结构5
第2.2节方案的选择与比较5
第2.3节KEELOQ滚动加密技术6
第3章主要选用芯片10
第3.1节编码芯片HCS30110
第3.2节滚动码解码芯片TDH630112
第3.3节无线收发芯片nRF90514
第4章电路的设计17
第4.1节无线发射系统电路的设计17
第4.2节接收系统电路的设计17
第4.3节驱动电路的设计18
第5章系统的性能分析与检修20
第5.1节系统调试方法20
第5.2节系统可靠性测试20
第5.3节系统的授权控制测试20
第5.4节遥控发射器与接收器的检修21
结论22
参考文献23
致谢24
附录24
附录1:电路图24
附录2:源程序25
.
智能遥控汽车门锁设计
苏州大学应用技术学院09电子转(学号)[庄尚]
【摘要】:滚动码技术是一种使数据传输具有极高XX性加解密技术,且每次传输的
代码都是唯一的。该文详细分析了滚动码技术的编解码原理与发码格式。利用HCS301滚
动码编码器和解码芯片TDH6301,并应用Kelloq加密算法与非易失的同步参数使得由
HCS301构成的系统具有极高的XX性,从而设计了一种可靠性和安全性较高的汽车车门
控制电路。系统编码信号由发射模块nRF905进行高频发射,经接收电路的接收模块接收
解调。文中给出了该设计方法详细的原理说明和具体的设计电路。该设计的电路和控制方
法适用于一般的简单的遥控系统设计,硬件设计也有一定的实用性和通用性。
【关键词】:滚动码技术;Keeloq;编码器;解码器
[Abstract]:Thehoppingcodetechnologyisanencryptionanddecryption
techniqueofhighcuritydatatransfer,andthehoppingcodemechanismmakes
perparticularlyintroduceshoppingcodetheory
licationofHCS301hoppingcodeencoderand
decoderchipTDH6301,withKelloqcryptographicalgorithmandnon-volatile
synchronousparametermaketheHCS301systemconsistingofhighconfidentiality,
whichcontributestothedesignofacardoorcontrolcircuithigherinreliabilityand
encodedsignalislaunchedinhighfrequencybytransmittermodule
nRF905,andisreceivedanddemodulatedbyreceivermoduleofthereceiving
circuitedpapergivesdetailsofthedesignmethodandtheprincipleaswellasthe
ignofthiscircuitandcontrolmethodsisapplicable
togeneralandsimpleremotecontrolsystemdesign,andthehardwaredesignis
alsopracticalandversatile.
[Keywords]:hoppingcode;Keeloq;encoder;decoder
前言
随着人们生活水平的不断提高,汽车越来越多地进入千家万户,但随着社会汽车数量
的增多,汽车被盗数量也逐年上升,车辆安全已成为汽车用户关注的问题。因此,开发高
可靠的汽车防盗系统具有重要的经济价值和社会意义。
汽车电子钥匙是汽车防盗的一个关键技术,随着微电子工业制造技术的飞速发展,无
线通信功能的短程、便捷、廉价的无线通信技术正引起越来越多的关注,单片机以其简单、
可靠、控制功能强,成本极低的优势被迅速应用到汽车门锁的控制系统的设计中,使得智
.
能门锁开门的“钥匙”摆脱传统的金属钥匙,发展到如今具有远程控制功能的智能门锁。
目前,我国很多的汽车无线门禁钥匙系统由钥匙发射模块和车内接收模块组成,用户按下
钥匙上的按钮开关触发系统工作,进行自动遥控车门和寻车的功能。
目前国际上的遥控、防盗、安全产品中已越来越多的采用跳码型编解码芯片。如目前
国外的豪华车如宝马奔施等均配备了原装的跳码型汽车防盗报警器。无论采用何种方法都
不能破译跳码型防盗报警器的密码,使高级汽车的安全得到极大的保证。
.
第1章绪论
第1.1节汽车车门控制电路的现状
汽车车门控制电路,即是在控制端把控制指令以某种编码方式形成易于传输的信号,
通过无线传输,在受控端经解码等处理形成相应的控制操作,实现汽车车门的开与关。无线
控制方式多种多样,可以根据不同的应用需要采用适宜的方式。各种遥控方式的不同,主
要在于信息的编码处理方式和信息的传输方式。所传信息的形式以与信息量的大小决定采
用何种信息编码和处理方式。
在编码方式上,目前在简单信息的遥控中常采用的是PCM方式和DTMF方式。这两
种方式均具有实现简单、可靠性高的优点。对于复杂以与大量信息的遥控,可以采用相应
的信号处理方式,经过适当的信源信道编码以与数字调制等处理来生成易于传输的信号。
对于这些编码处理方式,可以根据系统功能需要进行灵活选择。
无线遥控编解码技术根据所使用的编解码芯片类型的划分,主要有固定编码、学习码、
滚动码加密技术三大类。
1.1.1.固定码加密技术
固定码加密无线遥控识别技术是采用专门的编码/解码芯片,通过改变编码芯片和与
之配对的解码芯片地址位的不同状态,即:将地址位通过选择悬空、搭铁、接电源正(三态
编码芯片)的不同组合,来获得不同的钥匙量,只有编码芯片的地址位与解码芯片的地址
位状态完全一致,解码芯片才能输出信号。发射和接收的多位地址数据密码是确认用户合
法性的关键。由固定型编解码芯片组成的遥控装置,缺点是线路复杂,XX性较差。这些
芯片用于加密的地址码是通过地址线的连接来设置的,只要打开遥控装置的外壳,根据线
路板的连线即可读出地址码。同时,6~12条地址线所能形成的地址编码总数也不够大,
如果使用一种被称为“编码扫描器”的设备,通过单片机自动将全部的编码依次编出,并
通过无线电发射出去,一直到接收电路响应为止,对于PT2262所形成的编码,破解的时
间不会超过2小时。
1.1.2.学习码加密技术
为了克服固定码技术的缺点,近年来研发了学习型编解码芯片,采用软件编码的方式,
电路简单,地址编码总数也有明显的提高,价格与固定编码型芯片差不多,因此有人认为
可以成为固定型编解码芯片的替代产品。与固定编码解码芯片相比,使用学习型编解码芯
片有以下好处。
(1)由固定码芯片组成的遥控装置,需要在线路板上手工编码,编解码地址设置要
一一对应,费时费力。采用学习码芯片时则不存在这些问题,因为密码是厂家通过软件设
.
置的,不同密码的发射电路在线路板焊接上并无差别,因此可以自动焊接。
(2)同样多的数据位,学习码芯片编码总组数大大高于固定编码芯片。
(3)对于学习码芯片编码,既可以采用专用芯片解码(称为硬件解码),也可以通过
单片机解码(称为软件解码)。
由于有上述优点,学习型编解码组成的遥控电路特别适用于XX性要求较高的场合,
例如卷帘门遥控、汽车车门遥控、家庭门禁、电子锁等。但学习型编解码方式仍有明显的
缺点,这就是使用时,其密码容易从空中被截获,只要在发射芯片附近(一般为十几米范
围内)安置一个具有存储功能的无线接收装置,盗窃者即可轻易地获得密码,使用这一密
码就能顺利打开车门、电子锁等。
1.1.3.滚动码加密技术
进一步提高XX性的编解码技术是滚动码技术。滚动码加密又称跳码技术,是目前最
先进的编解码技术。它是采用一种非线性加密算法对原代码进行随机加密,从而产生长
度为66位的高XX度的密码控制信号(典型应用于提供4路数据三态(瞬态、锁存、双稳态
信号),并且每次所发射的密码都是惟一的,不重复。系统具有钥匙学习记忆功能,若遥控
器丢失,系统可以重新学习新的遥控器,而原来的遥控器即被擦除,即使他人使用原来的
遥控器,系统也会拒绝读取。滚动码解码电路由微处理器(单片机CPU)、外接电可擦存储
器(EEPROM)与相应的软件程序组成。
第1.2节课题研究的意义
随着人们生活水平的提高,汽车已逐渐进入人们的生活,但是经常发生汽车被盗窃事
件,究其原因密码容易被截获破译,盗窃者使用这一密码即可轻易打开车门。传统编译码
芯片如VD5026,VD5027,MCI45026,MCI45027等已经在防盗、安全等系统得到广泛的
应用,这些芯片简单易用,但具有很大的缺陷:编码量少而极易重码;密码长度短(一般
为8-12位,最多不超过16位),因而数据极易被扫描和破译,不能满足高安全场合的需要。
因此,研究开发一种能进一步提高XX性、密码不易被破译的汽车车门控制电路,有
着非常现实的意义。基于KEELOQ技术的滚动码芯片则克服了以上两个缺陷,较好地解
决了密码的防盗问题。滚动码又称跳码,是一种复杂的非线性加密算法,使数据传输具有
极高的XX性.每次传输的代码都是唯一的、不规则的、且不重复.使得任何通过非法捕
捉和扫描跟踪等破译手段都难以奏效。滚动码芯片的使用十分简便,只要在第一次使用前,
编译码器进行一次"学习",使编译码器的密码同步,通常一个译码器可以支持多个编码器,
再加上其电压使用范围宽,功率消耗极小,因此成为传统编译码器的理想升级换代产品。
目前,基于滚动密码的无线遥控技术已经发展的很成熟了。将该技术融人汽车车门的
控制电路,是汽车防盗系统最有潜力的发展方向。
.
第2章系统设计
第2.1节汽车车门控制电路系统的总体结构
系统总体框图如图2-1
图2-1系统框架图
本系统主要由无线发射、接收电路和驱动电路三部分组成,基于滚动码加密技术来设
计高性能遥控的汽车车门控制电路。遥控器是这个系统的控制端,遥控器在这个系统中起
着控制功能。当系统正常工作时,无线接收电路接收到信息后,将信息传输给滚动码解码
器,解码器对数据进行鉴别、提取和相应的处理,驱动执行电路,从而实现对汽车车门的
无线控制。即可以通过操作遥控器的键来控制汽车的中控门锁,实现汽车车门的自动开和
关的功能。
第2.2节方案的选择与比较
2.2.1.滚动码技术实现方式的选择
本项目的研究关键在于滚动码技术的实现。本质而言,滚动码技术就是一种复杂的协
议。其实现有硬件方式和软件方式两种。前者有诸多显著优点,同时亦存在不足之处:成
本较高,需单片机MCU控制,大批量时尤为突出;Keeloq技术对按键指令编码只停留于
检错层面,未作纠错层面编码;按键指令只有4种功能,即使采用组合方式最多亦只有l5
种功能。既不方便,功能扩展亦困难;某特定型号芯片的序列和同步计数器长度均固定,
系统建成后,无法以软件方式升级、扩容、提高系统性能;灵活性较差,特别是核心技术
受制于人。后者核心是Keeloq算法的软件实现,优点主要表现为:灵活性强,可按需要进
发射信号按键输指
令
编码电路产生信号
接收电路解码电路驱动电路电机转动
LED亮
.
行设计;序列号、加密钥匙、同步计数器长度可根据需要选择,其升级、修改均较容易;
按键指令进行纠错编码,用加密钥匙对发送信息编码时可有重点地选择较复杂的变换处
理;节约成本,系统设计较少依赖硬件。虽然如此,考虑到技术成熟性,特别是应用系统
的稳定性、可靠性等,所以本项目研究主要采用硬件方式来实现。
2.2.2.滚动码芯片的选择
方案中编码解码电路选用编码芯片HCS301与解码芯片TDH6301相配对的一组滚动
码芯片。当两芯片的地址相同时,才能正常接发收编码。编码电路以HCS301为核心加上
少量的外围元件组成。HCS301的工作电压为+3.5-+13.0V。解码电路以TDH6301加上少量
的外围元件组成,TDH6301的工作电压为2.0-5.5V。
2.2.3.无线发射、接收模块的选择
方案中发射、接收电路选用的是无线收发芯片nRF905。nRF905是挪威NordicVLSI
公司推出的单片射频收发器,工作电压为1.9~3.6V,32引脚QFN封装(5×5mm),工作
于433/868/915MHz三个ISM(工业、科学和医学)频道,频道之间的转换时间小于650us。
2.2.4.驱动电路的方案选择
方案中的驱动电路用电动机的正转反转来表示汽车车门的开与关,电动机的工作电压
为6V。
第2.3节KEELOQ滚动加密技术
2.3.1.汽车门锁的硬件实现方法与加密方法
如图3-9所示为汽车门锁的结构图,编码部分即遥控器,用户只要操作遥控器上的几个
按键就可以实现开锁、闭锁和允许汽车点火等操作。解码部分安装在汽车内,它同样是通
过射频接收遥控器的数据,然后将接收的数据利用单片机进行KEELOQ解码技术将其解
密,最终获得按键信息而执行相应的操作。
图3-9汽车门锁硬件结构图
按键HCS301
射频
编码部分
EEPROM
单
片
机
状态指示
中控锁驱
动
学习键
射频
解码部分
.
Microchip公司以KEELOQ技术为基础开发了滚动码系统专用芯片,HCS301是其中
较典型的一款,8引脚封装的编码IC芯片,里面集成了KEELOQ算法和其他一些功能,
带有4个按键接口,实现15位的功能/命令码。内置192b(12×16bwords)EEPROM,
用来存放EN_KEY(加密密钥)、SN(序列号)、SYNC(同步码)、SEED(种子码)等。序列
号用来标识不同的对象,加密密钥用来对发送的数据进行加密,增加破译的难度,它不直接
发送出去。同步计数器用来抗截获,每次发送数据时,同步计数器的值都被更新,所以每
次发送的数据都不一样,种子码用于安全学习时参与加密密钥的生成。接收方必须先通过
学习来获得并存储发送方的序列号、加解密密钥和当前同步计数器的值,学习相当于身份
确认,只有经过学习的用户才能与主机通信。主机在接收到信号后,首先比对序列号,然
后利用学习过程中得到并存储的加密密钥对接收的数据进行解密。接着检查同步计数器是
否匹配,在确认其匹配后,再去处理接收到的按键信令,并根据接收到的按键信令做出相应
的动作反应。HCS301的系统使每次发送的密文都不相同,有效防止了空中截获法和数据
重传带来的安全隐患。图3-10所示为HCS301的硬件KEELOQ加密原理图。
图3-10HCS301加密方法原理图
要启动编码器(HCS301)只需将按键按下即可,每次按键均会产生一组新的编码,内
部IC的基本动作如下:
(1)同步计数值会自动加1后再存入其EEPROM;
(2)同步计数值、识别码和功能键会重新编码加密后
以产生一组新的跳码(hoppingcode),新产生的66bits资料码会被传送到接收器进行
解码的动作。
产生编码密码(encryptionkey)有2种方法:
固定码部分(34)跳动码部分(32b)
功能键序号跳码
S1
S2
S3
S4
序号(28b)
密码(64b)
识别码(28b)
序号(28b)
+1
加
密
算
法
密码输出
.
(1)简易编码法(simpleencode)
编码密码(encryptionkey)等于制造商代码,或者,编码密码(encryptionkey)不会随着序
号改变。
(2)标准编码法(normalencode)
编码密码(encryptionkey)不等于制造商代码,或者编码密码(encryptionkey)是由制造
商代码与序号共同产生,任何一项改变编码密码(encryptionkey)也会跟着改变。
2.3.2.汽车门锁的软件解密实现方法
为了使解码部分获得解密密钥,在这种硬件加密,软件解密的KEELOQ滚动码汽车
防盗锁交付使用之前,它还需要学习以获得解密密钥,因为使用中的编码器和解码器必须
一一配对,以防止多个遥控器打开同一个车门的情况。在解码器未经过学习之前,除了制
造商代码之外其他什么都不知道,接收解码器需要众多的解码资料存储在EEPROM中,而
这些资料的提供者就是遥控发射器(即编码器):序号,同步计数值,识别码和编码密码。
KEELOQ有3种学习模式:
(1)简易学习模式
这种学习模式比较简单,其解密密钥就等于制造商代码,而制造商代码可以固化在程序
中,或者事先存储在解码器的EEPROM中,在一次的学习过程中解码器就可以获得序号,
识别码和同步计数值。这些资料在学习的过程中存储在EEPROM中以供以后解密使用。
这种学习模式的优点在于简单易懂,解码程序较短。但是假如制造商代码是公开的,则使
用相同制造商代码的系统就有可能被破解。
(2)标准学习模式
标准学习模式必须通过两次学习得到解密密钥,第一次学习取得解密密码,序号,识
别码和同步计数值,第二次学习检查同步计数值后存储在EEPROM中。在这种学习模式
中,解密密钥不等于制造商代码,它是通过制造商代码与序号过两次运算得到64b的解密
密钥,也就是说固化在程序中的制造商代码并不是解密密钥,真正的解密密钥要在学习之
后才能得知,它不为人所掌握。
(3)安全学习模式
在安全学习模式中,引入种子码以获得解密密钥。利用种子码通过解密算法产生低32
位的解密密钥,再利用序号通过解密算法产生高32位的解密密钥,计算出全部的64位
则为真正的解密密钥。不管在学习过程中,还是在使用过程中,接收的资料需要通过
KEELOQ软件解码,其解密过程如下:
1、接收有效的KEELOQ资料,共66b;
2、检查接收资料的固定码部份是否与资料库中的序号相同;
3、自资料库中取出64b解密密钥(encryptionkey);
.
4、将接收到的资料加以解码产生4种资料,即功能键、溢位、识别码、同步计数值;
5、检验10b的“识别码”,识别码的值(內定)与序号(rialnumber)的低10位元相
等;
6、比较固定码中的“功能键”值与解码后的“功能键”值是否相等,按键排列顺序
为:S2(MSB),S1,S0,S3(LSB);
7、检查“同步计数值”的变化是否正确。
.
第3章主要选用芯片
第3.1节编码芯片HCS301
301的管脚与其功能
HCS301的引脚排列如图3-1所示。
图3-1HCS301引脚排列
引脚1-4:S0-S3,数据输入通道,其中S2,S3在编程状况时可作为时钟输入,引脚5:
VSS,电源地;引脚7:LED,指示工作状态与低电压指示,可直接驱动LED,低压时,
指示灯将以5次/秒的频率闪烁;引脚8:VDD,电源,工作电压为+3.5-+13.0V。
编码器HCS301发出的密码长66位,由34位的固定码和32位由KEELOQ算法产生
的加密码组成,固定码主要包括28位的系列号(每个编码器独一无二),还含6个状态位,
其中2位显示是否重复、电源是否低压;另外4位状态位为4位的功能信息(即按键输入
组合情况)。32位的加密码中含4位功能信息,以与12位的辨别码(判断译码过程是否有
效)和16位同步计数器值。每次按下命令控制键时,译码器的同步计数器的值加1,从冲
击的角度看,有一半的位将发生改变,因此相邻的密码将大相径庭。一个相当长的时期内,
密码将不会重复,不重复次数可达64K(216)次。
HCS301还具有独特的电源自动关闭功能,即只有在有编码信号时才进入工作状态,
静态功耗极低,降低了电源功耗。通过二极管阵列,HCS301最大可实现15个功能。
301编码原理
HCS301在使用之前,必须产生一个唯一的加密密钥。密钥产生过程如图3-2所示:
由工厂代码和系列号起经密钥产生算法形成唯一的加密密码,然后写人片内EEPR0M。工
厂代码又称系列码或制造商码,长度为64Bit。每一个制造商均不相同。它用于产生与每
一个编码器相对应的唯一加密密钥。工厂代码是整个系统安全的关键。应规范管理、保存。
如工厂代码泄密,则整个系统没有任何安全性可言。系列号为28Bit,对应于每一个编码
器,可作为用户码。
.
图3-2加密密钥匙生成原理图
301的编码过程
由原代码,加密密钥与同步码等经Keeloq算法加密后,产生32Bit高度XX的滚动代
码。由于Keeloq算法的复杂性和16位同步码每次传输时都要更新。故每次传输代码都和
上一次的代码完全不同。只有在传输64K(216)次后才可能重复,以每天传送10次代码
计算,时间间隔为18年之久。编码过程如图3-3所示:
图3-3滚动码产生图
3.1.4.片内EEPR0M
HCS301片内具有192Bit(16x12)EEPROM,用于存储加密密钥、序列号同步值和其
它信息,在使用HCS301之前和使用之中都需要对其进行操作。使用之前需对其进行编程。
为XX起见。只有在编程EEPROM之后相当短的时间内才能进行回读检验。其它时间为
禁读状态。使用之中则读EEPROM信息加密,产生发送代码,并更新同步值。
301发码格式
HCS301的发码信息由几个部分组成如图3-4所示。每次发码的码字以引导码标志和
头标开始,接着是滚动和固定码部分,最后为每次发送的保护时间。滚动码部分为32Bit
加密数据;固定码部分为34Bit,包括状态位、功能位和28位系列号。总计码组合多达
7.38x10种。
滚动码加密算法32Bit滚动码数据序列号按键信息密钥
同步计数值
序列号
发送信息
密钥生成算法工厂代码64Bit
编码器系列号28Bit
密钥64Bit
.
图3-4发码格式
第3.2节滚动码解码芯片TDH6301
6301跳码译码器的管脚与其功能
TDH6301跳码译码器的引脚排列如图3-6所示。
图3-6TDH6301引脚排列
TDH6301的工作电压为,工作温度为-40-+85℃,静态电流:低功耗(待机状态<3uA)。
引脚1:VDD,电源,一般接+5V;引脚2:LEARNIN,"学习"键;引脚3,LEARNLED,
"学习"指示输出;引脚4:MCLR:译码器复位端口;引脚5:LMS,上拉时锁存输出,下
拉时暂存输出;引脚6:NC(D5),空引脚;引脚7:NC(D4),空引脚;引脚8-11,D0-D3,
数据输出端;引脚12:VT,接收信号有效输出;引脚13:RFIN,接收信号输入;引脚14:
VSS,接地。
TDH6301与编码芯片HCS301配对使用,可省去了烦琐的编码和配对。他有两种输出
方式,当TDH6301的5端悬空时为脉冲型电平输出方式,即无接收信号时,数据输出将
保持约500ms;当TDH6301的5端接法如图4所示时为锁存型电平输出方式,即输出电
平将保持到有其他输出口接收信号时为止。
TDH6301的输出状态由"学习"过的编码器决定,即对应的按键输入组合产生对应的输
出组合,因而通过门电路组合TDH6301的输出能够实现15个功能。
.
3.2.2.解码原理
解码器要正确地对接收到的PWM数据进行解码,首先必须对相应(指与解码器具有
相同的厂商代码)的编码器进行学习,因为解码器在一开始只有厂商代码,没有其他用于解
码用的数据,如系列号、密钥、同步值等。根据HCS301工作于不同的加密方式,其学习
后得到的数据是不一样的。学习过程如图3-7所示。
图3-7学习编码器过程
用于对32位加密滚动码解密用的64位密钥产生原理同编码器的加密密钥,这与编码
器的加密模式有关,因此必须要求编码器和解码器具有一致的加密和解密模式。解码器在
获得32位解密值后,必须经过系列号鉴别,若相同,则学习成功,并将系列号、同步值
和解密密钥存入EEPROM中,为以后正确解码和相应的控制做好准备。
3.2.3.同步值识别
学习后解码器便可以正常工作。解码器最终通过同步值识别来判断该次从编码器接收
的数据是否合法,是否根据按键键值进行相应的控制。解码器接收编码器发送来的数据后,
先对接收到的滚动码进行解码,若该码合法,则继续对解码获得的同步值进行识别,识别
方法如图3-8所示。若解码获得的同步值与上次正常接收到的同步值的差值在l6K之内,
则解码器工作在单操作窗口,就会马上根据键值进行相应的控制并更新EEPROM中的同
步值;若差值在l6~32K之内,则解码器工作在双操作窗口等待接收下一次数据,若这两
次同步值连续,则此次操作有效,并更新同步值;若差值在32K之外,则此次操作失败。
图3-8同步值识别原理图
有效发射
旋转窗口
无效操作窗口
32K
双操作窗口单操作
窗口
16-32K
小于16K
当前同步位置
接收到32位加
密滚动码
获得32位解密值
系列号,同步值
与解密密钥存入
EEPROM
64位密码
.
第3.3节无线收发芯片nRF905
905的管脚与其功能
nRF905的引脚排列如图3-9所示。
图3-9nRF905引脚排列
nRF905的工作电压为1.9~3.6V,32引脚QFN封装(5×5mm),工作于433/868/915MHz。
VDD:电源,工作电压为+3.3~3.6VDC;TX_EN:数字输入,等于1,发送模式;
等于0,接受模式;TRX_CE:数字输入,使nRF905工作于接收或发送状态;PWR_UP:
数字输入,使芯片上电;uCLK:时钟输出;CD:载波检测;AM:地址匹配;DR:接收
或发射数据完成;MISOSPI:接口SPI输出;MOSISPI:接口SPI输入;SCKSPI:时钟
SPI时钟;CSNSPI:使能SPI使能;VSS:电源接地。
3.3.2.无线发送系统程序设计
发送端的单片机将接收机的地址和要发送的数据写完后,就要控制nRF905模块将数
据信息发送出去,nRF905模块在发送模式时会自动产生字头和CRC校验码。当发送过
程结束后,nRF905模块的数据传输完成管脚会通知单片机数据发送完毕。
下面为典型的nRF905模块数据发送流程:
1、当微控制器要发送数据时,将接收机的地址和发送数据通过SPI接口传输给nRF905
模块;
2、微控制器设置TRX_CE和TX_EN管脚同时置为高电平,启动发送端的nRF905模
块为发送模式;
3、发送端的nRF905模块发送过程处理:射频寄存器开启、数据打包(加字头和CRC
校验码)、数据包发送、当数据包发送结束,将数据发送完成管脚(DR管脚)置为高电平;
4、如果AUTO_RETRAN被设置为高,nRF905模块将连续地发送数据包,直到
TRX_CE被设置为低;
5、TRX_CE被设置为低时,nRF905模块数据包发送过程结束并回到待机模式。
.
单片机控制nRF905模块数据发送流程图如图3-10所示。
待机模式
有数据发送?
SPI寄存器配置
Y
N
TRX_CE=1?
启动发送模块
Y
数据发送结束?
TRX_CE=0?
AUTORETRAN=1?
N
Y
Y
N
N
开始
N
图3-10nRF905模块数据发送流程
3.3.3.无线接收系统程序设计
接收端的单片机控制nRF905模块进入接收模式后,当nRF905模块监测到有同一频
段的载波信号且接收到相匹配的地址时,就开始数据包接收。当数据包正确接收完毕后,
接收端的单片机在nRF905模块处于待机状态时通过SPI接口提取数据包中的有效接收数
据。
下面为典型的nRF905模块数据接收流程:
1、微控制器控制TRX_CE为高电平、TX_EN为低电平,nRF905模块进入接收模式;
2、650us后,nRF905模块监测空中的信息,等待接收数据;
3、当nRF905模块检测到与接收频率相同的载波时,设置载波检测管脚(CD管脚)
为高电平;
4、当nRF905模块接收到有效的地址时,设置地址匹配管脚(AM管脚)为高平;
.
5、当一个正确的数据包接收完毕后,nRF905模块自动去掉数据包的字头、地址和
CRC校验码,然后将数据接受完成管脚置为高电平;
6、微控制器将TRX_CE设置为低电平;
7、微控制器通过SPI接口以一定的速率提取数据包中的有效接收数据;
8、当所有的有效数据接收完毕,微控制器控制nRF905模块数据接收完成管脚(DR管
脚)和地址匹配管脚(AM管脚)为低电平;
9、nRF905进入待机模式。
单片机控制nRF905模块数据接收流程图如图3-11所示。
待机模式
TRX_CE=1?
TX_EN=1?
启动接受
Y
N
有同频载波
地址匹配?
CRC效验正确?
Y
Y
N
开始
地址匹配信号置高
Y
接受数据包
N
地址匹配信号置低
提取有效数据
置DR,AM高电平
图3-11nRF905模块数据接收流程
.
第4章电路的设计
第4.1节无线发射系统电路的设计
发射系统主要由按键编址电路、编码电路、无线电发射模块组成。发射系统的电路原
理图见图4-1。
图4-1发射系统电路
当按下开关按钮S0或S1后,1或2脚就输入一有效的键码(高电平),HCS301内部
将生成一随机的密码序列,该密码序列与键码进行复杂的运算后,产生一被加密的串行数
据,通过6脚输出,由发射模块nRF905进行高频发射,同时7脚输出低电平,使LED发
光,做发射有效指示。
由HCS301组成的遥控发射电路,平时电路处于节电状态,当按下发射按键时被被唤
醒。在按下发射按键后必须待全部编码发射完毕才能松开按键,若在发射中途停止按键,
则会开始新的编码传输,当按键时间超过25s后,自动进入省电状态。
第4.2节接收系统电路的设计
接收系统主要由无线电接收模块、解码电路组成。接受系统的电路原理图见图4-2。
.
图4-2接收系统电路
初次配对使用时,要先进行"学习"。按下"学习"键,使译码器进入"学习"接收状态,学
习指示灯闪亮一下后熄灭。之后的30s内,按下编码器的任意键,输出信号代码,若编码
器未被学习过,学习指示灯长亮约1s后自动熄灭,说明编码器输出的代码被成功学习,学
习过程完成;若学习指示灯快速闪亮(>5次/s)表示学习失败,可能是芯片不配套或者被
烧坏,学习成功以后,这一对编译码器就可以同步跳变工作了。
TDH6301译码器最多可支持15个译码器,只需经过上述学习步骤,就可实现,当编
码器学习溢出时(即超过15个编码器时),译码器会从头开始自动覆盖并作废最早一个已
学习的译码器,长按学习键超过8s,待学习灯LED熄灭后,译码器自动清除存储器里的
记忆内容。
按下发射器上的按钮开关S0时,编码信号从无线收发模块nRF905发射出,经接收电
路的nRF905接收解调后送入TDH6301的13脚信号输入端,LED3亮,表示输入了有效
信号,编码信号经TDH6301解码后,从D0脚输出高电平,LED1亮。
按下发射器上的按钮开关S1时,编码信号从无线收发模块nRF905发射出,经接收电
路的nRF905接收解调后送入TDH6301的13脚信号输入端,LED3亮,表示输入了有效
信号,编码信号经TDH6301解码后,从D1脚输出高电平,LED2亮。
第4.3节驱动电路的设计
.
图4-3驱动电路
编码信号经电路译码后从TDH6301的8脚、9脚分别输出。当发射器发出开门指令时,
经接收电路译码,TDH6301的9脚(D1)输出高电平,经电阻R1使VT3导通,其集电
极电位下降使VT2导通,同时由于VT3发射极电位升高使VT5也导通,此时电源正端经
VT2、电动机、VT5与电源负端(地端)的电路接通,电动机正转,表示车门开。
当发射器发出关门指令时,经接收电路译码,TDH6301的8脚(D0)输出高电平,
经电阻R0使VT4导通其集电极电位下降使VT1导通,同时由于VT4发射极电位升高使
VT6也导通,此时电源正端经VT1、电动机、VT6与电源负端(地端)的电路接通,电动
机反转,表示车门关。
.
第5章系统的性能分析与检修
第5.1节系统调试方法
5.1.1.发射电路的调试
按下任一按键,发光二极应该会亮起,如果不亮,首先检查二极管是否烧坏,再检查
电路是不是有虚焊。
用万用表测试HCS301的第6脚,静态时为低电平(0V),当任一按键按下时,为2
—3V,用示波器观察可见一串矩形脉冲。再调试过程中发现6脚没有波形输出,首先检查
了电路的焊接,发现没问题,后来换了一块芯片就行了。
5.1.2.接收电路的调试
按下发射器任一键,用示波器测试TDH6301的13脚,可见一串与发射器6脚相同的
矩形脉冲,表示接收到信号并把信号输入到解码芯片。
解码前,系统要先进行学习,学习过程如下:按下接受控制板的学习键,解码芯片的
LRN灯亮,按编码器任一键,解码芯片的LRN灯连续闪烁,表示学习成功。
学习成功后,按发射器的S0键,接收板的输出端D0输出高电平,LED0亮,按下发
射器的S1键,接收板的D1输出高电平,LED1亮。
5.1.3.驱动电路的调试
LED1亮时,VT3、VT2、VT5导通,电动机正转。LED0亮时,VT4、VT1、VT6
导通,电机反转。
在调试过程中发现LED0亮时,电动机不转动,检查发现VT6错接了PNP型三极管
8550,换上NPN型三极管8050后电动机反转正常。
第5.2节系统可靠性测试
该防盗系统可靠性主要体现在以下几个方面:
(1)用户使用遥控器对接收、驱动部分电路的控制应准确无误,不会产生误动作;
(2)遥控器发送的控制信息,无线接收模块应准确接收,不产生掉码现象;
(3)电机正转反转时,应准确动作到位。
由于本系统的可靠性完全可以通过肉眼鉴别,无需专用设备和测试方法。只要直接操
纵遥控器上的按键,核对系统动作是否与预期结果相同即可。
第5.3节系统的授权控制测试
对无线接收单元来说,不管是被授权的遥控器。或者是非授权的遥控器,无论采用哪
种学习模式,只要是基于KEELOG技术。高频发射频率为433MHZ的遥控器,发送来的
.
信息,无线接收单元都能可靠的接收。无线接收单元有效接收后,系统都能执行相应的动
作。本系统的设计目标是:只有通过系统已经学习了的遥控器,才能有效操纵系统各项功
能。未经过系统学习的遥控器发出的控制信息,接收单元虽能有效接收。但在后续的信息
确认中,将被抛弃。本系统经过大量遥控器测试,系统授权控制性能良好,满足初始设计
目标。
第5.4节遥控发射器与接收器的检修
5.4.1.遥控发射器的检修方法
(一)如何鉴别遥控器的好坏
(1)比较准确可靠的方法是用频谱仪观察遥控器的射频波形,这样不但能看到发射信号
的有无,还能观察到射频信号的强弱、频率与调制情况。
(2)业余情况下,可以采取通过测量遥控器的静态与动态(发射时)电流的方法来鉴别
遥控器的好坏,一般遥控器的静态电流在微安级,发射状态电流在5~10mA左右,过大
或过小,都可能有故障。
(3)用示波器观察发射管集电极的波形,通过观察此高频已调信号的有无,来鉴别遥控
器的好坏。
(4)通过测量晶体管和集成电路的各点电压,和正常的遥控器相比较(一般汽车防盗系
统均配有两个以上的遥控器),来鉴别、维修遥控器。
(二)如何区别遥控器的故障部位
一旦确定遥控器有故障,就应当首先确定故障的部位,压缩范围,重点检查可疑元件,
直至找到并处理更换之。对遥控器的检修,可按照按键输入电路、编码信号发生器电路、
无线发射电路三个故障部位来分别进行检修。按键输入电路比较容易检修,一般不会出
现几个按键同时出故障的现象,只要某一按键不起作用,只要更换该按键,一般故障即可
排除。编码信号处理电路,由于均采用集成电路,检修也比较容易。对该部分的检修,应
检查供电,在电源电压正常的前提下,如更换内部时钟引脚外接电阻后,仍然观察不到振
荡波形,则为集成电路本身损坏;编码信号处理集成电路的信号输出端是一个关键测试点,
在静态为0电平;发射状态为高电平,且表针微微摆动;否则应考虑更换集成电路。无线
发射电路的检修,应在按键输入电路、编码信号处理电路正常的状态下进行,因为编码信
号处理电路输出的信号,不仅是无线发射电路的调制信号,还作为无线发射管的直流偏置
电压。对无线发射电路的检修,可以先检查无线发射管的直流电压,在直流电压正常(有
直流偏置电压)的情况下,再检查更换满足振荡条件的元件。固定码编码芯片从市场买回
来后,就可以直接使用,对于滚动码芯片则不同,在使用前必须用烧写器写入初始数据,
市售的滚动码芯片是不能直接使用的。遥控器的常见故障是电池电量耗尽,或按键损坏,
.
或频率偏离正常值,在一般情况下,不要轻易拆卸集成电路,如确有必要,拆卸一定要小
心,遥控器均为双面PCB板,印制板线条细密,一旦操作不好,遥控器就会报废。
5.4.2.遥控接受器的检修方法
(一)如何鉴别遥控接收头的好坏如果发现防盗器的遥控距离太近或遥控根本不起作
用,应考虑接收头电路是否有故障。判断接收头工作是否正常,常用以下几种方法:
(1)将频谱仪的接收天线靠近接收头,给防盗系统(或接收头)加电,400MHz频段内
应观察到波浪状(调容式)或倒“V”状(调感式)的频谱波形,如频谱仪屏幕上无任何反
应,说明接收头电路有故障。
(2)用遥控器发射信号,用示波器观察接收头的输出端(“OUT”),解码电路的输入端
应有脉冲信号输出。因发送的数据信号不同,其波形为宽窄不同组合的脉冲串,如波形不
正常或测不到波形,说明接收头部分有故障。
(3)用示波器观察接收头信号输出端,用金属物点触接收头的天线输入端,示波器应有
较强烈的杂波反应,否则说明接收头部分有故障。
(4)用遥控器发射信号,用万用表直流电压档测量信号输出端的电压,当按下遥控器的
按键时,其输出端的电压应有变化,如无任何反应,说明接收头电路有故障。
(二)如何区分遥控接收头的故障部位一旦确定接收头电路工作不正常,就可以按以下
方法区分故障来自哪一部分电路,即高放级、超再升级还是放大、整形电路。
具体方法是用遥控器发射信号,用示波器观察放大、整形电路有无信号输入,如有信
号波形,说明高放电路、超再升电路基本正常,故障在放大、整形电路;如测不到信号,
则故障在超再升电路之前。对超再升电路的检修,可以先检查晶体管的直流电压,如不正
常,检查直流偏置电路或晶体管本身;直流偏置电压正常后,再检查交流反馈电路,对贴
片电容最好用代换法。遥控接收头由于工作在低电压、小电流的情况下,一般不会出现烧
毁电路板的故障,晶体管和集成电路的损坏率也不大。故障率最高的是接收频率偏移,多
是因为进水或电路板受潮使超再升电路停止振荡,业余修理应多做清洗、驱潮工作,多测
量电压(波形),尽量少拆卸元件。对于业余修理可以采用整体代换法,现在汽车防盗系
统用的接收头,无论是调感式还是调容式,也无论是分立直插件还是贴表器件或是混合方
式(阻容元件用贴片,晶体管、集成电路、电解电容用直插件),它们之间几乎完全可以互
换使用,只要找到GND(接地)、+V(电源正)、OUT(信号输出)端的对应关系,并重
新调整接收头的接收频率即可。
结论
本系统设计的最初要求是,通过按键操作,能够实现远距离的汽车车门控制。被控设
.
备用电动机代替,电动机正转表示车门开,电动机反转表示车门关。经过以上讨论,本系
统基本能够实现这些功能,在发射机与接收机相距50米的范围内可以进行可靠控制。但
是任何一个项目都不是十全十美的,本系统设计时只是出于一种简易的遥控系统设计的思
想出发,所以该项目也可以进一步完善。由于在系统开始设计时就考虑了系统以后的扩展
问题,因而可以从以下几个方面进行改进:
1)进一步降低接收器的静态功耗。
2)进一步减小汽车“钥匙”的体积,更有利于携带。
滚动码发生器HCS301电压范围为+3.5-+13.0V,有4个按键输入接口,最多可外接15
个按键,而只要简单廉价的外围元件。应用Kelloq加密算法与非易失的同步参数使得由
HCS301构成的系统具有极高的XX性,可广泛应用于各种XX系统,比如各种报警系统、
防盗系统、住宅、办公楼、汽车车库等门卫管理系统。它所产生的“电子钥匙”具有极高
的XX性,几乎不可能被破译(复制),可以想象不久的将来,这种“电子钥匙”将取代现
在的机械钥匙,在我们的日常生活中处处可见。
参考文献
[1].赖金福.数字集成电路简明手册[Z].电子工业
[2].宋秋明.最新汽车防盗系统中的跳码芯片一TR1300/TR1315[J],2007年5月
[3].卓圣鹏.高频电路设计与制作[Z].科学技术,2006年8月
[4].余宏生.无线电防遗失报警系统设计[J].黄石高等专科学校学报,2002年01期
[5].赫建国.家用电器遥控系统集成电路大全[Z].人民邮电,2003年2月
[6].黄智伟.HCS3XX编码芯片与其应用[J].2000年04期3月
[7].谢炜洪.一种基于单片机的无线自动报警系统[J].1999年03期
[8].李广弟,朱月秀,王秀山.单片机基础[Z].航空航天大学,2001年7月
[9].南利平.通信原理.清华大学[Z].2000年2月
[10].林元新.汽车中央门锁控制装置的设计与应用[Z].汽车电子网,2002年5月
[11].孙涵芳,徐爱卿.MCS一51/96系列单片机原理与应用[Z].:航空航天大学,1992
[12].高锋淋,黄世震,林伟.基于KEELOQ跳码技术的密码系统设计[J].现代电子技术,2006
[13].张亮,李靖.滚动码技术与在车辆防盗中的应用[J].中国人民公安大学学报,2004年03期
[14].李福平,金伟正,邓德祥.KEELOQ技术的软件实现[J].电子技术应用.2002,3(6):10—13
[15].苏长赞.实用遥控技术手册[M]:人民邮电,1996
[16].李迟生.智能遥控器的设计[M]3电子技术应用,1997.(3):38-40
.
[17].沈行良.基于KEELOQ技术的文件加密设计与实现[J].XX工程技术大学学报,2005年01期
[18].MierochipTechnologyInc.SimpleCodeHoppingDecoder[EB/OL]
致谢
当毕业论文写到这里的时候,为期一学期四个月的毕业设计基本要画上句号了,四个
月的时间可以说长也可以说短,但这一百多天的时间里,在胡清泉老师的耐心指导下,自
己可谓有了一个全新的提高。毕业设计也较顺利圆满地完成了。
首先感谢的是我的导师胡清泉老师。做设计期间各个方面都得到胡老师帮助和极大的
支持。导师渊博的知识,严谨的治学态度,使我终身受益。值此论文完成之际,谨向恩师
致以衷心的感谢和崇高的敬意!
感谢在我大学的几年里所有帮助过我的老师和同学,在学业上给我的帮助和支持。还
感谢我几年里所认识的好朋友,在我灰心郁郁的时候给我以关怀和鼓励。
最后,我要特别感谢我的父母和家人,父母的爱是深厚和无私的,是他们对我始终如
一的爱和信任让我有勇气和信心面对并克服战胜困难!深深的祝福父母安康幸福!
附录
附录1:电路图
.
附录2:源程序
发送部分
/****************************
//写发射数据命令:20H
//读发射数据命令:21H
//写发射地址命令:22H
//读发射地址命令:23H
//读接收数据命令:24H
******************************/
#include
#defineuintunsignedint
#defineucharunsignedchar
sbitTXEN=P2^7;//配置口定义5`6`7//
sbitTRX_CE=P2^6;
sbitPWR=P2^5;
sbitMISO=P2^2;//SPI口定义0`1`2`3//
sbitMOSI=P2^3;
sbitSCK=P2^1;
sbitCSN=P2^0;
sbitDR=P2^4;//状态输出口4//
sbitled=P1^0;
/************//*RF寄存器配置*//*************/
//0x00,//配置命令//
//0x6C,//CH_NO,配置频段在433.2MHZ
//0x0E,//输出功率为10db,不重发,节电为正常模式
//0x44,//地址宽度设置,为4字节
//0x03,0x03,//接收发送有效数据长度为3字节
//0xE7,0xE7,0xE7,0xE7,//接收地址,16位CRC校验,外部时钟信号使能,16M晶振
//UP_CLK输出1MHZ频率
//0xDE,//CRC充许
//******************************//
.
/*ucharcodeRFConf[11]={0x00,0x6c,0x0e,0x44,0x03,0x03,
0xe7,0xe7,0xe7,0xe7,0xde};
*/
ucharRFConf[11]=
{
0x00,//配置命令//
0x4c,//CH_NO,配置频段在423MHZ//
0x0C,//输出功率为10db,不重发,节电为正常模式//
0x44,//地址宽度设置,为4字节//
0x02,0x02,//接收发送有效数据长度为32字节//
0xCC,0xCC,0xCC,0xCC,//接收地址//
0x58,//CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振//
};
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
voidSpiWrite(uchardate)//用SPI口写数据至NRF905内//
{
uchari;
for(i=0;i<8;i++)
{
delay(1);
SCK=0;
MOSI=(date&0x80);
date<<=1;
delay(1);
SCK=1;
delay(1);
SCK=0;
}
SCK=0;
}
voidTxPacket(void)
{
TXEN=1;
CSN=0;
SpiWrite(0x22);//写发送地址,后面跟4字节地址//
SpiWrite(0xcc);
SpiWrite(0xcc);
SpiWrite(0xcc);
SpiWrite(0xcc);
CSN=1;
.
delay(1);
CSN=0;
SpiWrite(0x20);//写发送数据命令,后面跟三字节数据//
SpiWrite(0x01);
SpiWrite(0x02);
SpiWrite(0x04);
CSN=1;
delay(1);
TRX_CE=1;//使能发射模式//
delay(1);//等带发送完成//
led=~led;
while(!DR);//在非屏蔽状态下,只能发射一次//
TRX_CE=0;
led=~led;//加上led后,对接收产生了一定的影响//
while(!DR);//有时多接收一次的数据//
}
voidIni_System(void)
{//初始化配置寄存器//
uchari;
delay(1);
CSN=1;
SCK=0;
DR=0;
PWR=1;//进入掉电模式//
TRX_CE=0;
TXEN=0;
delay(1);
CSN=0;//进入SIP模式//
for(i=0;i<11;i++)
{
SpiWrite(RFConf[i]);//设置配置寄存器//
}
CSN=1;//关闭SPI,进入发射状态//
PWR=1;
TRX_CE=1;//CE,EN同时为1,为发送模式//
TXEN=1;
}
voidmain(void)
{
led=1;
Ini_System();//设置配置,并进入发射模式//
PWR=1;//进入掉电模式//
while(1)
{
TxPacket();//发送数据//
.
led=~led;
DR=0;
}
}
接收部分
#include
#defineuintunsignedint
#defineucharunsignedchar
bitlcdbit;
sbitTXEN=P2^7;//配置口定义7`6`5//
sbitTRX_CE=P2^6;
sbitPWR=P2^5;
sbitMISO=P2^2;//SPI口定义0`1`2`3//
sbitMOSI=P2^3;
sbitSCK=P2^1;
sbitCSN=P2^0;
sbitDR=P2^4;//状态输出口4//
sbitled=P1^0;
/************//*RF寄存器配置*//*************/
0x00,//配置命令//
0x6C,//CH_NO,配置频段在433.2MHZ//
0x0E,//输出功率为10db,不重发,节电为正常模式//
0x44,//地址宽度设置,为4字节//
0x03,0x03,//接收发送有效数据长度为3字节//
0xE7,0xE7,0xE7,0xE7,//接收地址,16位CRC校验,外部时钟信号使能,16M晶UP_CLK
输出1MHZ频率//
0xDE,//CRC充许//
//******************************//
/*ucharcodeRFConf[11]={0x00,0x6c,0x0e,0x44,0x03,0x03,
0xe7,0xe7,0xe7,0xe7,0xde};
*/
ucharRFConf[11]={//配置命令//
0x00,0x4c,0x0c,0x44,0x02,0x02,
0xcc,0xcc,0xcc,0xcc,0x58//CRC充许,8位CRC校验,外部时钟信号不使能,16M
晶振//
};
ucharTxRxBuffer[2];
uchardate;
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
.
voidSpiWrite(unsignedchardate)//用SPI口写数据至NRF905内//
{
uchari;
for(i=0;i<8;i++)
{
delay(1);
SCK=0;
MOSI=(date&0x80);
date<<=1;
delay(1);
SCK=1;
delay(1);
SCK=0;
}
SCK=0;
}
unsignedcharSpiRead(void)//from905readdata//
{
uchari;
for(i=0;i<8;i++)
{
date<<=1;
SCK=0;
delay(1);
date|=MISO;
SCK=1;
delay(1);
}
SCK=0;
return(date);
}
voidRxPacket(void)//接收数据包//
{
uchari;
while(DR)
for(i=0;i<2;i++)
{
led=~led;
TxRxBuffer[i]=SpiRead();
i++;
}
}
voidWait_Rec_Packet(void)//等待接收数据包//
{
uchartemp;
.
PWR=1;
TXEN=0;//接收模式//
TRX_CE=1;
delay(2);
while(!DR)
{delay(10);
if(DR)//数据接收成功//
{
led=~led;
TRX_CE=0;//如果数据准备好,则进入待机模式,以便SPI口操作//
CSN=0;
delay(1);
SpiWrite(0x24);//读nRF905所接受到的数据//
RxPacket();//保存数据//
CSN=1;
delay(10);
TRX_CE=1;
/*temp=TxRxBuffer[0]+TxRxBuffer[1]+TxRxBuffer[2];
if(temp==0x07)
{
lcdbit=!lcdbit;lcdbit=0
}*/
break;
}
}
}
voidIni_System(void)//初始化配置寄存器//
{
uchari;
lcdbit=1;
CSN=1;
SCK=0;
DR=0;
PWR=1;//进入掉电模式//
TRX_CE=0;
TXEN=0;
delay(1);
CSN=0;//进入SIP模式//
for(i=0;i<11;i++)
{
SpiWrite(RFConf[i]);//设置配置寄存器//
}
CSN=1;//关闭SPI,进入接收状态//
PWR=1;
TRX_CE=1;
.
TXEN=0;
}
voidmain(void)
{
P0=0x00;
led=1;
Ini_System();//设置配置,并进入接收模式(收)//
PWR=1;//进入掉电模式//
while(1)
{
Wait_Rec_Packet();//等待接收完成,保存完接收数据(保存数据+地址)//
CSN=0;
P0=TxRxBuffer[0];
delay(600);
P0=TxRxBuffer[1];
delay(600);
P0=TxRxBuffer[2];
delay(600);
CSN=1;
}
}
本文发布于:2023-03-04 20:48:34,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1677934115138934.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:智能车锁.doc
本文 PDF 下载地址:智能车锁.pdf
留言与评论(共有 0 条评论) |