RS-232-C 是PC 机常用的串行接口,由于信号电平值较高,易损坏接口电路的芯片,与TTL电平不兼容故需使用电平转换电路方能与TTL 电路连接。本产品(转接器),可以实现任意电平下(0.8~15)的UART串行接口到RS-232-C/E接口的无源电平转接, 使用非常方便可靠。 什么是RS-232-C 接口?采用RS-232-C 接口有何特点?传输电缆长度如何考虑?答: 计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。 在串行通讯时,要求通讯双方都采用一个标准接口,使不同 的设备可以方便地连接起来进行通讯。 RS-232-C接口(又称 EIA RS-232-C)是目前最常用的一种串行通讯接口。它是在1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”该标准规定采用一个25 个脚的 DB25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。(1) 接口的信号内容实际上RS-232-C 的25 条引线中有许多是很少使用的,在计算机与终端通讯中一般只使用3-9 条引线。(2) 接口的电气特性 在RS-232-C 中任何一条信号线的电压均为负逻辑关系。即:逻辑“1”,-5— -15V;逻辑“0” +5— +15V 。噪声容限为2V。即 要求接收器能识别低至+3V 的信号作为逻辑“0”,高到-3V的信号 作为逻辑“1”(3) 接口的物理结构 RS-232-C 接口连接器一般使用型号为DB-25 的25 芯插头座,通常插头在DCE 端,插座在DTE端. 一些设备与PC 机连接的RS-232-C 接口,因为不使用对方的传送控制信号,只需三条接口线,即“发送数据”、“接收数据”和“信号地”。所以采用DB-9 的9 芯插头座,传输线采用屏蔽双绞线。(4) 传输电缆长度由RS-232C 标准规定在码元畸变小于4%的情况下,传输电缆长度应为50 英尺,其实这个4%的码元畸变是很保守的,在实际应用中,约有99%的用户是按码元畸变10-20%的范围工作的,所以实际使用中最大距离会远超过50 英尺,美国DEC 公司曾规定允许码元畸变为10%而得出附表2 的实验结果。其中1 号电缆为屏蔽电缆,型号为DECP.NO.9107723 内有三对双绞线,每对由22# AWG 组成,其外覆以屏蔽网。2 号电缆为不带屏蔽的电缆。 2. 什么是RS-485 接口?它比RS-232-C 接口相比有何特点?答: 由于RS-232-C 接口标准出现较早,难免有不足之处,主要有以下四点:(1) 接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL 电平不兼容故需使用电平转换电路方能与TTL 电路连接。(2) 传输速率较低,在异步传输时,波特率为20Kbps。(3) 接口使用一根信号线和一根信号返回线而构成共地的传输形式, 这种共地传输容易产生共模干扰,所以抗噪声干扰性弱。(4) 传输距离有限,最大传输距离标准值为50 英尺,实际上也只能 用在50 米左右。针对RS-232-C 的不足,于是就不断出现了一些新的接口标准,RS-485 就是其中之一,它具有以下特点:1. RS-485 的电气特性:逻辑“1”以两线间的电压差为+(2—6) V 表示;逻辑“0”以两线间的电压差为-(2—6)V 表示。接口信号电平比RS-232-C 降低了,就不易损坏接口电路的芯片, 且该电平与TTL 电平兼容,可方便与TTL 电路连接。2. RS-485 的数据最高传输速率为10Mbps3. RS-485 接口是采用平衡驱动器和差分接收器的组合,抗共模干能力增强,即抗噪声干扰性好。4. RS-485 接口的最大传输距离标准值为4000 英尺,实际上可达 3000 米,另外RS-232-C接口在总线上只允许连接1 个收发器, 即单站能力。而RS-485 接口在总线上是允许连接多达128 个收发器。即具有多站能力,这样用户可以利用单一的RS-485 接口方便地建立起设备网络。因RS-485 接口具有良好的抗噪声干扰性,长的传输距离和多站能力等上述优点就使其成为首选的串行接口。 因为RS485 接口组成的半双工网络,一般只需二根连线,所以RS485接口均采用屏蔽双绞线传输。 RS485 接口连接器采用DB-9 的9 芯插头座,与智能终端RS485接口采用DB-9(孔),与键盘连接的键盘接口RS485 采用DB-9(针)。3. 采用RS485 接口时,传输电缆的长度如何考虑?答: 在使用RS485 接口时,对于特定的传输线经,从发生器到负载其数据信号传输所允许的最大电缆长度是数据信号速率的函数,这个 长度数据主要是受信号失真及噪声等影响所限制。下图所示的最大电缆长度与信号速率的关系曲线是使用24AWG 铜芯双绞电话电缆(线 径为0.51mm),线间旁路电容为52.5PF/M,终端负载电阻为100 欧 时所得出。(曲线引自GB11014-89 附录A)。由图中可知,当数据信 号速率降低到90Kbit/S 以下时,假定最大允许的信号损失为6dBV 时, 则电缆长度被限制在1200M。实际上,图中的曲线是很保守的,在实 用时是完全可以取得比它大的电缆长度。 当使用不同线径的电缆。则取得的最大电缆长度是不相同的。例 如:当数据信号速率为600Kbit/S 时,采用24AWG 电缆,由图可知最 大电缆长度是200m,若采用19AWG 电缆(线径为0。91mm)则电缆长 度将可以大于200m; 若采用28AWG 电缆(线径为0。32mm)则电缆 长度只能小于200m。
上传时间: 2013-10-11
上传用户:时代电子小智
产品概述HP ProCurve Switch 2810系列包括两款机型:带有 20个10/100/1000端口的24端口HP ProCurve Switch 2810-24G和带有44个10/100/1000端口的48端口HP ProCurve Switch 2810-48G。每款交换机还配有4个双功能定制端口,可用于RJ-45 10/100/1000或mini-GBIC光纤千兆连接。2810系列交换机可提供出色的访问安全性、高级优先化和流量监控能力,因而是高性能、安全10/100/1000连接的理想选择。此外,它还价格经济、简单易用,带有1U可堆叠外形,即使应用于更小的布线室内,也便于灵活操作。
上传时间: 2013-11-24
上传用户:tiantwo
致力于提供高速信号处理解决方案的北京拓目科技有限公司(Beijing Topmoo Tech Co. Ltd)在2011年推出基于FLASH阵列存储的高端固态存储产品TMS-F231-160G之后,近日宣布推出其入门级固态存储产品TMS-S231-512G。 在容量选择上,TMS-F231-160G可以通过更换PIN2PIN的FLASH芯片而达到扩容目的,但是SLC FLASH成本高居不下,在目前高速发展的工业相机领域,难以推广普及。为了推动高速工业相机存储市场的发展,拓目科技发布了基于SATA接口的SSD盘存储系统TMS-S231-512G,随着消费电子的发展,SSD的单盘容量不断的扩大,价格不断的降低,必然能使TMS-S231-512G得到广泛的应用。 “TMS-S231-512G是一款专门针对航空拍摄、工业照相、汽车碰撞实验等需要高速图像采集、存储的场合而开发的固态存储设备”拓目科技产品经理Lemon Chan介绍道,“该产品的单盘存储容量最高可达512GB,单盘存储带宽则最高可达250MB/s,在该带宽支持条件下,TMS-S231-512G最高能支持1280x1024@200fps的连续拍照模式,几乎适用于所有需要高速图像采集的场合”。 “目前,Camera Link接口在航空相机、工业相机等领域得到广泛应用。与此同时,TMS-S231-512G板载两个SFP光纤接口,最高可支持5Gbps的有效数据吞吐率。”拓目科技研发总监Steven Wu介绍道,“除了硬件板卡以外,拓目科技还提供一整套完整的客户端解决方案,以方便客户能够轻易地对设备进行管控,同时方便客户对记录下来的数据进行预览、下载等操作”。 “与国外同类产品相比,TMS-S231-512G除了大容量、高带宽等优点以外,另一大优势在于其极强的可定制性。TMS-S231-512G从硬件设计到软件开发,所有的核心技术都由拓目科技研发团队自主开发,相比于国外同类产品,拓目科技无论在产品的可定制性还是售后技术支持方面,都具有较大的优势”Steven Wu补充道。 同时,该款产品所有器件均采用工业级宽温芯片,温度、振动等环境适应性试验均已顺利通过,能最大程度地保证产品在恶劣环境下的可靠性。 TMS-S231系列产品特点 1, 采用业界领先的掉电保护技术,令您的数据安全无忧 2, 性能卓越,拥有单盘高达250MB/s的写带宽 3, 单盘64GB~512GB大容量可选,存储容量大小也可以根据用户需求定制 4, 支持Camera Link视频输入接口 5, 支持DVI显示接口 6, 支持SFP光纤接口 7, 支持2个SSD盘 8, 支持1个千兆以太网口 9, 满足各种恶劣环境应用要求,能在高温度、多灰尘、高海拔、强振动等应用场合下正常使用 TMS-S231采用12V电源适配器供电,功耗小于10W,TMS-S231集成度非常高,产品体积仅为260mm x 180mm x 45mm,如上图所示。TMS-S231现已进入大批量生产阶段并随时接受客户试用申请与订货。
上传时间: 2013-11-12
上传用户:a155166
pcie基本概念及其工作原理介绍:PCI Express®(或称PCIe®),是一项高性能、高带宽,此标准由互连外围设备专业组(PCI-SIG)制 订,用于替代PCI、PCI Extended (PCI-X)等基于总线的通讯体系架构以及图形加速端口(AGP)。 转向PCIe主要是为了实现显著增强系统吞吐量、扩容性和灵活性的目标,同时还要降低制造成本,而这 些都是基于总线的传统互连标准所达不到的。PCI Express标准在设计时着眼于未来,并且能够继续演 进,从而为系统提供更大的吞吐量。第一代PCIe规定的吞吐量是每秒2.5千兆比特(Gbps),第二代规 定的吞吐量是5.0 Gbps,而最近公布PCIe 3.0标准已经支持8.0 Gbps的吞吐量。在PCIe标准继续充分利 用最新技术来提供不断加大的吞吐量的同时,采用分层协议也便于PCI向PCIe的演进,并保持了与现有 PCI应用的驱动程序软件兼容性。 虽然最初的目标是计算机扩展卡以及图形卡,但PCIe目前也广泛适用于涵盖更广的应用门类,包括网络 组建、通信、存储、工业电子设备和消费类电子产品。 本白皮书的目的在于帮助读者进一步了解PCI Express以及成功PCIe成功应用。 PCI Express基本工作原理 拓扑结构 本节介绍了PCIe协议的基本工作原理以及当今系统中实现和支持PCIe协议所需要的各个组成部分。本节 的目标在于提供PCIe的相关工作知识,并未涉及到PCIe协议的具体复杂性。 PCIe的优势就在于降低了复杂度所带来的成本。PCIe属于一种基于数据包的串行连接协议,它的复杂度 估计在PCI并行总线的10倍以上。之所以有这样的复杂度,部分是由于对以千兆级的速度进行并行至串 行的数据转换的需要,部分是由于向基于数据包实现方案的转移。 PCIe保留了PCI的基本载入-存储体系架构,包括支持以前由PCI-X标准加入的分割事务处理特性。此 外,PCIe引入了一系列低阶消息传递基元来管理链路(例如链路级流量控制),以仿真传统并行总线的 边带信号,并用于提供更高水平的健壮性和功能性。此规格定义了许多既支持当今需要又支持未来扩展 的特性,同时还保持了与PCI软件驱动程序的兼容性。PCI Express的先进特性包括:自主功率管理; 先进错误报告;通过端对端循环冗余校验(ECRC)实现的端对端可靠性,支持热插拔;以及服务质量(QoS)流量分级。
上传时间: 2013-11-29
上传用户:zw380105939
人民币大写金额转换程序(修正版v0.0.3) =================================== 1.使用方法: ------------- 将Cash_RMB.dcu放入Delphi安装目录下的Lib中,在uses中加入Cash_RMB, 即可引用CashRMB方法. function CashRMB(CashAmount: Double): String 如: procedure TForm1.Button1Click(Sender: TObject) begin QRLabel1.Caption := CashRMB(Table1.FieldByName( 金额 ).AsFloat) end 结果将传回人民币金额大写字符串. 如果 CashAmount = 0 或数值溢出(超出万亿位),结果返回空串. 2.说明: -------- A.本转换程序最大程度只支持到万亿元(位)的金额数值转换操作.如果你的 转换数值超出此极限,你可以在调用前先行判断数据的合法性,如果没有作预 先判断,转换过程中将引发本单元中自带的错误处理例程. b.该转换结果符合标准金额大写书写格式,零角零分等字样不存在于最终的 转换结果中. c.本转换程序自带数据溢出等数据非法及转换错误等处理例程. d.本程序适用于32位的Delphi版本.
上传时间: 2013-12-31
上传用户:hebmuljb
三相步进电机的三相六拍工作方式,正转的绕组通电顺序:A、AB、B、BC、C、CA、A,反转的通电顺序:A、AC、C、CB、B、BA、B、A。 由于步进电机转子有一定的惯性以及所带负载的惯性,故步进电机的工作过程中不能及时的启动和停止,在启动时应慢慢的加速到预定速度,在停止前应逐渐减速到停止,否则,将产生失步现象。 步进电机的控制问题可总结为两点: 1、产生工作方式需要的时序脉冲; 2、控制步进电机的速度,使它始终遵循加速、匀速、减速的规律工作。
上传时间: 2015-12-01
上传用户:685
以太网技术简介,目前,千兆以太网已经发展成为主流网络技术。大到成千上万人的大型企业,小到几十人的中小型企业,在建设企业局域网时都会把千兆以太网技术作为首选的高速网络技术。千兆以太网技术甚至正在取代ATM技术,成为城域网建设的主力军。
上传时间: 2014-01-19
上传用户:zsjinju
校园计算机网络已成为学校办学的基础设施和必备条件.公众信息电脑公司立足中国,服务教育.以开发教育软件和网络集成为主,推进教育教学信息化和现代化为主要经营方向的综合型企业. 经过广泛的市场调研,针对中等学校办学特点和应用需求,我公司开发出"中等学校千兆校园网整体解决方案".该方案以千兆主干网络为基础平台,以校园网应用为主线,以实现广泛的教育资源共享,提高教育教学的现代化水平为目的,为建设信息化学校提供了一个完整的解决方案. 校园网的信息点覆盖整个校园,教室、办公室和宿舍等地方都是十分开放的,很多人都可以自由出入这些地方,任何一个人都可以利用这些地方的信息点,通过便携连接到学校办公内部网,这将对校园网造成巨大安全隐患。全网接入采用统一认证技术,保证了只有合法授权的用户才能使用内部或外部网络,而且还能对网络的使用情况进行了审计 。
上传时间: 2014-11-18
上传用户:gundamwzc
/****************temic*********t5557***********************************/ #include <at892051.h> #include <string.h> #include <intrins.h> #include <stdio.h> #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //STC12C2051AD的SFR定义 sfr WDT_CONTR = 0xe1;//stc2051的看门狗?????? /**********全局常量************/ //写卡的命令 #define write_command0 0//写密码 #define write_command1 1//写配置字 #define write_command2 2//密码写数据 #define write_command3 3//唤醒 #define write_command4 4//停止命令 #define TRUE 1 #define FALSE 0 #define OK 0 #define ERROR 255 //读卡的时间参数us #define ts_min 250//270*11.0592/12=249//取近似的整数 #define ts_max 304//330*11.0592/12=304 #define t1_min 73//90*11.0592/12=83:-10调整 #define t1_max 156//180*11.0592/12=166 #define t2_min 184//210*11.0592/12=194 #define t2_max 267//300*11.0592/12=276 //***********不采用中断处理:采用查询的方法读卡时关所有中断****************/ sbit p_U2270B_Standby = P3^5;//p_U2270B_Standby PIN=13 sbit p_U2270B_CFE = P3^3;//p_U2270B_CFE PIN=6 sbit p_U2270B_OutPut = P3^7;//p_U2270B_OutPut PIN=2 sbit wtd_sck = P1^7;//SPI总线 sbit wtd_si = P1^3; sbit wtd_so = P1^2; sbit iic_data = P1^2;//lcd IIC sbit iic_clk = P1^7; sbit led_light = P1^6;//测试绿灯 sbit led_light1 = P1^5;//测试红灯 sbit led_light_ok = P1^1;//读卡成功标志 sbit fengmingqi = P1^5; /***********全局变量************************************/ uchar data Nkey_a[4] = {0xA0, 0xA1, 0xA2, 0xA3};//初始密码 //uchar idata card_snr[4]; //配置字 uchar data bankdata[28] = {1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7,1,2,3,4,5,6,7}; //存储卡上用户数据(1-7)7*4=28 uchar data cominceptbuff[6] = {1,2,3,4,5,6};//串口接收数组ram uchar command; //第一个命令 uchar command1;// //uint temp; uchar j,i; uchar myaddr = 8; //uchar ywqz_count,time_count; //ywqz jishu: uchar bdata DATA; sbit BIT0 = DATA^0; sbit BIT1 = DATA^1; sbit BIT2 = DATA^2; sbit BIT3 = DATA^3; sbit BIT4 = DATA^4; sbit BIT5 = DATA^5; sbit BIT6 = DATA^6; sbit BIT7 = DATA^7; uchar bdata DATA1; sbit BIT10 = DATA1^0; sbit BIT11 = DATA1^1; sbit BIT12 = DATA1^2; sbit BIT13 = DATA1^3; sbit BIT14 = DATA1^4; sbit BIT15 = DATA1^5; sbit BIT16 = DATA1^6; sbit BIT17 = DATA1^7; bit i_CurrentLevel;//i_CurrentLevel BIT 00H(Saves current level of OutPut pin of U2270B) bit timer1_end; bit read_ok = 0; //缓存定时值,因用同一个定时器 union HLint { uint W; struct { uchar H;uchar L; } B; };//union HLint idata a union HLint data a; //缓存定时值,因用同一个定时器 union HLint0 { uint W; struct { uchar H; uchar L; } B; };//union HLint idata a union HLint0 data b; /**********************函数原型*****************/ //读写操作 void f_readcard(void);//全部读出1~7 AOR唤醒 void f_writecard(uchar x);//根据命令写不同的内容和操作 void f_clearpassword(void);//清除密码 void f_changepassword(void);//修改密码 //功能子函数 void write_password(uchar data *data p);//写初始密码或数据 void write_block(uchar x,uchar data *data p);//不能用通用指针 void write_bit(bit x);//写位 /*子函数区*****************************************************/ void delay_2(uint x) //延时,时间x*10us@12mhz,最小20us@12mhz { x--; x--; while(x) { _nop_(); _nop_(); x--; } _nop_();//WDT_CONTR=0X3C;不能频繁的复位 _nop_(); } ///////////////////////////////////////////////////////////////////// void initial(void) { SCON = 0x50; //串口方式1,允许接收 //SCON =0x50; //01010000B:10位异步收发,波特率可变,SM2=0不用接收到有效停止位才RI=1, //REN=1允许接收 TMOD = 0x21; //定时器1 定时方式2(8位),定时器0 定时方式1(16位) TCON = 0x40; //设定时器1 允许开始计时(IT1=1) TH1 = 0xfD; //FB 18.432MHz 9600 波特率 TL1 = 0xfD; //fd 11.0592 9600 IE = 0X90; //EA=ES=1 TR1 = 1; //启动定时器 WDT_CONTR = 0x3c;//使能看门狗 p_U2270B_Standby = 0;//单电源 PCON = 0x00; IP = 0x10;//uart you xian XXXPS PT1 PX1 PT0 PX0 led_light1 = 1; led_light = 0; p_U2270B_OutPut = 1; } /************************************************/ void f_readcard()//读卡 { EA = 0;//全关,防止影响跳变的定时器计时 WDT_CONTR = 0X3C;//喂狗 p_U2270B_CFE = 1;// delay_2(232); //>2.5ms /* // aor 用唤醒功能来防碰撞 p_U2270B_CFE = 0; delay_2(18);//start gap>150us write_bit(1);//10=操作码读0页 write_bit(0); write_password(&bankdata[24]);//密码block7 p_U2270B_CFE =1 ;// delay_2(516);//编程及确认时间5.6ms */ WDT_CONTR = 0X3C;//喂狗 led_light = 0; b.W = 0; while(!(read_ok == 1)) { //while(p_U2270B_OutPut);//等一个稳定的低电平?超时判断? while(!p_U2270B_OutPut);//等待上升沿的到来同步信号检测1 TR0 = 1; //deng xia jiang while(p_U2270B_OutPut);//等待下降沿 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//定时器晚启动10个周期 //同步头 if((324 < a.W) && (a.W < 353)) ;//检测同步信号1 else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //等待上升沿 while(!p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1;//b.N1<<=8; if(a.B.L < 195);//0.5p else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } //读0~7块的数据 for(j = 0;j < 28;j++) { //uchar i; for(i = 0;i < 16;i++)//8个位 { //等待下降沿的到来 while(p_U2270B_OutPut); TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_max < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2;//先左移再赋值 b.B.L += 0xc0; i++; } else if(t1_min < a.B.L/*)&&(a.B.L < t1_max)*/)//0.5p { b.W >>= 1; b.B.L += 0x80; } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; while(!p_U2270B_OutPut);//上升 TR0 = 0; a.B.H = TH0; a.B.L = TL0; TH0 = TL0 = 0; TR0 = 1; if(t2_min < a.W/*)&&(a.W < t2_max)*/)//1P { b.W >>= 2; i++; } else if(t1_min < a.B.L/*a.W)&&(a.B.L < t1_max)*/)//0.5P //else if(!(a.W==0)) { b.W >>= 1; //temp+=0x00; //led_light1=0;led_light=1;delay_2(40000); } else { TR0 = 0; TH0 = TL0 = 0; goto read_error; } i++; } //取出奇位 DATA = b.B.L; BIT13 = BIT7; BIT12 = BIT5; BIT11 = BIT3; BIT10 = BIT1; DATA = b.B.H; BIT17 = BIT7; BIT16 = BIT5; BIT15 = BIT3; BIT14 = BIT1; bankdata[j] = DATA1; } read_ok = 1;//读卡完成了 read_error: _nop_(); } } /***************************************************/ void f_writecard(uchar x)//写卡 { p_U2270B_CFE = 1; delay_2(232); //>2.5ms //psw=0 standard write if (x == write_command0)//写密码:初始化密码 { uchar i; uchar data *data p; p = cominceptbuff; p_U2270B_CFE = 0; delay_2(31);//start gap>330us write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_bit(0);//写锁定位0 for(i = 0;i < 35;i++) { write_bit(1);//写数据位1 } p_U2270B_CFE = 1; led_light1 = 0; led_light = 1; delay_2(40000);//测试使用 //write_block(cominceptbuff[4],p); p_U2270B_CFE = 1; bankdata[20] = cominceptbuff[0];//密码存入 bankdata[21] = cominceptbuff[1]; bankdata[22] = cominceptbuff[2]; bankdata[23] = cominceptbuff[3]; } else if (x == write_command1)//配置卡参数:初始化 { uchar data *data p; p = cominceptbuff; write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_bit(0);//写锁定位0 write_block(cominceptbuff[4],p); p_U2270B_CFE= 1; } //psw=1 pssword mode else if(x == write_command2) //密码写数据 { uchar data*data p; p = &bankdata[24]; write_bit(1);//写操作码1:10 write_bit(0);//写操作码0 write_password(p);//发口令 write_bit(0);//写锁定位0 p = cominceptbuff; write_block(cominceptbuff[4],p);//写数据 } else if(x == write_command3)//aor //唤醒 { //cominceptbuff[1]操作码10 X xxxxxB uchar data *data p; p = cominceptbuff; write_bit(1);//10 write_bit(0); write_password(p);//密码 p_U2270B_CFE = 1;//此时数据不停的循环传出 } else //停止操作码 { write_bit(1);//11 write_bit(1); p_U2270B_CFE = 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /************************************/ void f_clearpassword()//清除密码 { uchar data *data p; uchar i,x; p = &bankdata[24];//原密码 p_U2270B_CFE = 0; delay_2(18);//start gap>150us //操作码10:10xxxxxxB write_bit(1); write_bit(0); for(x = 0;x < 4;x++)//发原密码 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT0); DATA >>= 1; } } write_bit(0);//锁定位0:0 p = &cominceptbuff[0]; write_block(0x00,p);//写新配置参数:pwd=0 //密码无效:即清除密码 DATA = 0x00;//停止操作码00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /*********************************/ void f_changepassword()//修改密码 { uchar data *data p; uchar i,x,addr; addr = 0x07;//block7 p = &Nkey_a[0];//原密码 DATA = 0x80;//操作码10:10xxxxxxB for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } for(x = 0;x < 4;x++)//发原密码 { DATA = *(p++); for(i = 0;i < 8;i++) { write_bit(BIT7); DATA >>= 1; } } write_bit(0);//锁定位0:0 p = &cominceptbuff[0]; write_block(0x07,p);//写新密码 p_U2270B_CFE = 1; bankdata[24] = cominceptbuff[0];//密码存入 bankdata[25] = cominceptbuff[1]; bankdata[26] = cominceptbuff[2]; bankdata[27] = cominceptbuff[3]; DATA = 0x00;//停止操作码00000000B for(i = 0;i < 2;i++) { write_bit(BIT7); DATA <<= 1; } p_U2270B_CFE = 1; delay_2(560);//5.6ms } /***************************子函数***********************************/ void write_bit(bit x)//写一位 { if(x) { p_U2270B_CFE = 1; delay_2(32);//448*11.0592/120=42延时448us p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26写1 } else { p_U2270B_CFE = 1; delay_2(92);//192*11.0592/120=18 p_U2270B_CFE = 0; delay_2(28);//280*11.0592/120=26写0 } } /*******************写一个block*******************/ void write_block(uchar addr,uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)//block0数据 { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } DATA = addr <<= 5;//0地址 for(i = 0;i < 3;i++) { write_bit(BIT7); DATA <<= 1; } } /*************************************************/ void write_password(uchar data *data p) { uchar i,j; for(i = 0;i < 4;i++)// { DATA = *(p++); for(j = 0;j < 8;j++) { write_bit(BIT0); DATA >>= 1; } } } /*************************************************/ void main() { initial(); TI = RI = 0; ES = 1; EA = 1; delay_2(28); //f_readcard(); while(1) { f_readcard(); //读卡 f_writecard(command1); //写卡 f_clearpassword(); //清除密码 f_changepassword(); //修改密码 } }
标签: 12345
上传时间: 2017-10-20
上传用户:my_lcs
|- 我的虚拟机和ubuntu下载 - 0 B|- 腾讯课堂公开课 - 0 B|- 工具软件 - 0 B|- X210光盘资料 - 0 B|- 4.C语言专题精讲篇 - 0 B|- 2.uboot和linux内核移植 - 0 B|- 1.ARM裸机全集 - 0 B|- 0.基础预科 - 0 B|- 专用播放器第一代-已不用,请下载第二代.rar - 18.10 MB|- 专用播放器-《朱老师物联网大讲堂》收费视频.rar - 18.10 MB|- 朱老师物联网大讲堂高级课程专用播放器-第二代.rar - 28.10 MB
标签: 物联网
上传时间: 2022-06-06
上传用户: