-
串行編程器源程序(Keil C語言)//FID=01:AT89C2051系列編程器//實現(xiàn)編程的讀,寫,擦等細節(jié)//AT89C2051的特殊處:給XTAL一個脈沖,地址計數(shù)加1;P1的引腳排列與AT89C51相反,需要用函數(shù)轉(zhuǎn)換#include <e51pro.h>
#define C2051_P3_7 P1_0#define C2051_P1 P0//注意引腳排列相反#define C2051_P3_0 P1_1#define C2051_P3_1 P1_2#define C2051_XTAL P1_4#define C2051_P3_2 P1_5#define C2051_P3_3 P1_6#define C2051_P3_4 P1_7#define C2051_P3_5 P3_5 void InitPro01()//編程前的準備工作{ SetVpp0V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=0; Delay_ms(20); nAddress=0x0000; SetVpp5V();}
void ProOver01()//編程結(jié)束后的工作,設(shè)置合適的引腳電平{ SetVpp5V(); P0=0xff; P1=0xff; C2051_P3_5=1; C2051_XTAL=1;}
BYTE GetData()//從P0口獲得數(shù)據(jù){ B_0=P0_7; B_1=P0_6; B_2=P0_5; B_3=P0_4; B_4=P0_3; B_5=P0_2; B_6=P0_1; B_7=P0_0; return B;}
void SetData(BYTE DataByte)//轉(zhuǎn)換并設(shè)置P0口的數(shù)據(jù){ B=DataByte; P0_0=B_7; P0_1=B_6; P0_2=B_5; P0_3=B_4; P0_4=B_3; P0_5=B_2; P0_6=B_1; P0_7=B_0;}
void ReadSign01()//讀特征字{ InitPro01(); Delay_ms(1);//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(20); ComBuf[2]=GetData(); C2051_XTAL=1; C2051_XTAL=0; Delay_us(20); ComBuf[3]=GetData(); ComBuf[4]=0xff;//----------------------------------------------------------------------------- ProOver01();}
void Erase01()//擦除器件{ InitPro01();//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號 C2051_P3_3=1; C2051_P3_4=0; C2051_P3_5=0; C2051_P3_7=0; Delay_ms(1); SetVpp12V(); Delay_ms(1); C2051_P3_2=0; Delay_ms(10); C2051_P3_2=1; Delay_ms(1);//----------------------------------------------------------------------------- ProOver01();}
BOOL Write01(BYTE Data)//寫器件{//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號 //寫一個單元 C2051_P3_3=0; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; SetData(Data); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); Delay_us(20); C2051_P3_4=0; Delay_ms(2); nTimeOut=0; P0=0xff; nTimeOut=0; while(!GetData()==Data)//效驗:循環(huán)讀,直到讀出與寫入的數(shù)相同 { nTimeOut++; if(nTimeOut>1000)//超時了 { return 0; } } C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return 1;}
BYTE Read01()//讀器件{ BYTE Data;//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號 //讀一個單元 C2051_P3_3=0; C2051_P3_4=0; C2051_P3_5=1; C2051_P3_7=1; Data=GetData(); C2051_XTAL=1; C2051_XTAL=0;//一個脈沖指向下一個單元//----------------------------------------------------------------------------- return Data;}
void Lock01()//寫鎖定位{ InitPro01();//先設(shè)置成編程狀態(tài)//----------------------------------------------------------------------------- //根據(jù)器件的DataSheet,設(shè)置相應(yīng)的編程控制信號 if(ComBuf[2]>=1)//ComBuf[2]為鎖定位 { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=1; C2051_P3_7=1; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); } if(ComBuf[2]>=2) { C2051_P3_3=1; C2051_P3_4=1; C2051_P3_5=0; C2051_P3_7=0; Delay_us(20); SetVpp12V(); Delay_us(20); C2051_P3_2=0; Delay_us(20); C2051_P3_2=1; Delay_us(20); SetVpp5V(); }//----------------------------------------------------------------------------- ProOver01();}
void PreparePro01()//設(shè)置pw中的函數(shù)指針,讓主程序可以調(diào)用上面的函數(shù){ pw.fpInitPro=InitPro01; pw.fpReadSign=ReadSign01; pw.fpErase=Erase01; pw.fpWrite=Write01; pw.fpRead=Read01; pw.fpLock=Lock01; pw.fpProOver=ProOver01;}
標(biāo)簽:
Keil
串行
C語言
編程器
上傳時間:
2013-11-12
上傳用戶:gut1234567
-
RS-232-C 是PC 機常用的串行接口,由于信號電平值較高,易損壞接口電路的芯片,與TTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL 電路連接。本產(chǎn)品(轉(zhuǎn)接器),可以實現(xiàn)任意電平下(0.8~15)的UART串行接口到RS-232-C/E接口的無源電平轉(zhuǎn)接, 使用非常方便可靠。
什么是RS-232-C 接口?采用RS-232-C 接口有何特點?傳輸電纜長度如何考慮?答: 計算機與計算機或計算機與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠程傳輸時,避免了多條線路特性的不一致而被廣泛采用。 在串行通訊時,要求通訊雙方都采用一個標(biāo)準接口,使不同 的設(shè)備可以方便地連接起來進行通訊。 RS-232-C接口(又稱 EIA RS-232-C)是目前最常用的一種串行通訊接口。它是在1970 年由美國電子工業(yè)協(xié)會(EIA)聯(lián)合貝爾系統(tǒng)、 調(diào)制解調(diào)器廠家及計算機終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準。它的全名是“數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進制數(shù)據(jù)交換接口技術(shù)標(biāo)準”該標(biāo)準規(guī)定采用一個25 個腳的 DB25 連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。(1) 接口的信號內(nèi)容實際上RS-232-C 的25 條引線中有許多是很少使用的,在計算機與終端通訊中一般只使用3-9 條引線。(2) 接口的電氣特性 在RS-232-C 中任何一條信號線的電壓均為負邏輯關(guān)系。即:邏輯“1”,-5— -15V;邏輯“0” +5— +15V 。噪聲容限為2V。即 要求接收器能識別低至+3V 的信號作為邏輯“0”,高到-3V的信號 作為邏輯“1”(3) 接口的物理結(jié)構(gòu) RS-232-C 接口連接器一般使用型號為DB-25 的25 芯插頭座,通常插頭在DCE 端,插座在DTE端. 一些設(shè)備與PC 機連接的RS-232-C 接口,因為不使用對方的傳送控制信號,只需三條接口線,即“發(fā)送數(shù)據(jù)”、“接收數(shù)據(jù)”和“信號地”。所以采用DB-9 的9 芯插頭座,傳輸線采用屏蔽雙絞線。(4) 傳輸電纜長度由RS-232C 標(biāo)準規(guī)定在碼元畸變小于4%的情況下,傳輸電纜長度應(yīng)為50 英尺,其實這個4%的碼元畸變是很保守的,在實際應(yīng)用中,約有99%的用戶是按碼元畸變10-20%的范圍工作的,所以實際使用中最大距離會遠超過50 英尺,美國DEC 公司曾規(guī)定允許碼元畸變?yōu)?0%而得出附表2 的實驗結(jié)果。其中1 號電纜為屏蔽電纜,型號為DECP.NO.9107723 內(nèi)有三對雙絞線,每對由22# AWG 組成,其外覆以屏蔽網(wǎng)。2 號電纜為不帶屏蔽的電纜。
2. 什么是RS-485 接口?它比RS-232-C 接口相比有何特點?答: 由于RS-232-C 接口標(biāo)準出現(xiàn)較早,難免有不足之處,主要有以下四點:(1) 接口的信號電平值較高,易損壞接口電路的芯片,又因為與TTL 電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL 電路連接。(2) 傳輸速率較低,在異步傳輸時,波特率為20Kbps。(3) 接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式, 這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。(4) 傳輸距離有限,最大傳輸距離標(biāo)準值為50 英尺,實際上也只能 用在50 米左右。針對RS-232-C 的不足,于是就不斷出現(xiàn)了一些新的接口標(biāo)準,RS-485 就是其中之一,它具有以下特點:1. RS-485 的電氣特性:邏輯“1”以兩線間的電壓差為+(2—6) V 表示;邏輯“0”以兩線間的電壓差為-(2—6)V 表示。接口信號電平比RS-232-C 降低了,就不易損壞接口電路的芯片, 且該電平與TTL 電平兼容,可方便與TTL 電路連接。2. RS-485 的數(shù)據(jù)最高傳輸速率為10Mbps3. RS-485 接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干能力增強,即抗噪聲干擾性好。4. RS-485 接口的最大傳輸距離標(biāo)準值為4000 英尺,實際上可達 3000 米,另外RS-232-C接口在總線上只允許連接1 個收發(fā)器, 即單站能力。而RS-485 接口在總線上是允許連接多達128 個收發(fā)器。即具有多站能力,這樣用戶可以利用單一的RS-485 接口方便地建立起設(shè)備網(wǎng)絡(luò)。因RS-485 接口具有良好的抗噪聲干擾性,長的傳輸距離和多站能力等上述優(yōu)點就使其成為首選的串行接口。 因為RS485 接口組成的半雙工網(wǎng)絡(luò),一般只需二根連線,所以RS485接口均采用屏蔽雙絞線傳輸。 RS485 接口連接器采用DB-9 的9 芯插頭座,與智能終端RS485接口采用DB-9(孔),與鍵盤連接的鍵盤接口RS485 采用DB-9(針)。3. 采用RS485 接口時,傳輸電纜的長度如何考慮?答: 在使用RS485 接口時,對于特定的傳輸線經(jīng),從發(fā)生器到負載其數(shù)據(jù)信號傳輸所允許的最大電纜長度是數(shù)據(jù)信號速率的函數(shù),這個 長度數(shù)據(jù)主要是受信號失真及噪聲等影響所限制。下圖所示的最大電纜長度與信號速率的關(guān)系曲線是使用24AWG 銅芯雙絞電話電纜(線 徑為0.51mm),線間旁路電容為52.5PF/M,終端負載電阻為100 歐 時所得出。(曲線引自GB11014-89 附錄A)。由圖中可知,當(dāng)數(shù)據(jù)信 號速率降低到90Kbit/S 以下時,假定最大允許的信號損失為6dBV 時, 則電纜長度被限制在1200M。實際上,圖中的曲線是很保守的,在實 用時是完全可以取得比它大的電纜長度。 當(dāng)使用不同線徑的電纜。則取得的最大電纜長度是不相同的。例 如:當(dāng)數(shù)據(jù)信號速率為600Kbit/S 時,采用24AWG 電纜,由圖可知最 大電纜長度是200m,若采用19AWG 電纜(線徑為0。91mm)則電纜長 度將可以大于200m; 若采用28AWG 電纜(線徑為0。32mm)則電纜 長度只能小于200m。
標(biāo)簽:
232
RS
串行接口
電平
上傳時間:
2013-10-11
上傳用戶:時代電子小智
-
摘要: 串行傳輸技術(shù)具有更高的傳輸速率和更低的設(shè)計成本, 已成為業(yè)界首選, 被廣泛應(yīng)用于高速通信領(lǐng)域。提出了一種新的高速串行傳輸接口的設(shè)計方案, 改進了Aurora 協(xié)議數(shù)據(jù)幀格式定義的弊端, 并采用高速串行收發(fā)器Rocket I/O, 實現(xiàn)數(shù)據(jù)率為2.5 Gbps的高速串行傳輸。關(guān)鍵詞: 高速串行傳輸; Rocket I/O; Aurora 協(xié)議
為促使FPGA 芯片與串行傳輸技術(shù)更好地結(jié)合以滿足市場需求, Xilinx 公司適時推出了內(nèi)嵌高速串行收發(fā)器RocketI/O 的Virtex II Pro 系列FPGA 和可升級的小型鏈路層協(xié)議———Aurora 協(xié)議。Rocket I/O支持從622 Mbps 至3.125 Gbps的全雙工傳輸速率, 還具有8 B/10 B 編解碼、時鐘生成及恢復(fù)等功能, 可以理想地適用于芯片之間或背板的高速串行數(shù)據(jù)傳輸。Aurora 協(xié)議是為專有上層協(xié)議或行業(yè)標(biāo)準的上層協(xié)議提供透明接口的第一款串行互連協(xié)議, 可用于高速線性通路之間的點到點串行數(shù)據(jù)傳輸, 同時其可擴展的帶寬, 為系統(tǒng)設(shè)計人員提供了所需要的靈活性[4]。但該協(xié)議幀格式的定義存在弊端,會導(dǎo)致系統(tǒng)資源的浪費。本文提出的設(shè)計方案可以改進Aurora 協(xié)議的固有缺陷,提高系統(tǒng)性能, 實現(xiàn)數(shù)據(jù)率為2.5 Gbps 的高速串行傳輸, 具有良好的可行性和廣闊的應(yīng)用前景。
標(biāo)簽:
Rocket
2.5
高速串行
收發(fā)器
上傳時間:
2013-11-06
上傳用戶:smallfish
-
高速串并轉(zhuǎn)換器的設(shè)計是FPGA 設(shè)計的一個重要方面,傳統(tǒng)設(shè)計方法由于采用FPGA 的內(nèi)部邏輯資源來實現(xiàn),從而限制了串并轉(zhuǎn)換的速度。該研究以網(wǎng)絡(luò)交換調(diào)度系統(tǒng)的FGPA 驗證平臺中多路高速串并轉(zhuǎn)換器的設(shè)計為例,詳細闡述了1 :8DDR 模式下高速串并轉(zhuǎn)換器的設(shè)計方法和16 路1 :8 串并轉(zhuǎn)換器的實現(xiàn)。結(jié)果表明,采用Xilinx Virtex24 的ISERDES 設(shè)計的多路串并轉(zhuǎn)換器可以實現(xiàn)800 Mbit/ s 輸入信號的串并轉(zhuǎn)換,并且減少了設(shè)計復(fù)雜度,縮短了開發(fā)周期,能滿足設(shè)計要求。關(guān)鍵詞:串并轉(zhuǎn)換;現(xiàn)場可編程邏輯陣列;Xilinx ; ISERDES
標(biāo)簽:
FPGA
多路
串并轉(zhuǎn)換
上傳時間:
2013-11-03
上傳用戶:王小奇
-
本文介紹了一種由低次級聯(lián)形式構(gòu)成的W波段寬帶六倍頻器。輸入信號先經(jīng)過MMIC得到二倍頻,再由反向并聯(lián)二極管對平衡結(jié)構(gòu)實現(xiàn)寬帶三倍頻,從而將Ku波段信號六倍頻到W波段。該倍頻器的輸入端口為玻璃絕緣子同軸轉(zhuǎn)換接頭,輸出為 WR-10 標(biāo)準矩形波導(dǎo)結(jié)構(gòu)。仿真結(jié)果表明當(dāng)輸入信號功率為20dBm時,三倍頻器在整個W波段的輸出三次諧波功率為4.5dBm左右,變頻損耗小于17dB。該設(shè)計可以降低毫米波設(shè)備的主振頻率,擴展已有微波信號源的工作頻段。
標(biāo)簽:
W波段
寬帶
倍頻器
仿真
上傳時間:
2013-11-16
上傳用戶:qingzhuhu
-
摘要: 串行傳輸技術(shù)具有更高的傳輸速率和更低的設(shè)計成本, 已成為業(yè)界首選, 被廣泛應(yīng)用于高速通信領(lǐng)域。提出了一種新的高速串行傳輸接口的設(shè)計方案, 改進了Aurora 協(xié)議數(shù)據(jù)幀格式定義的弊端, 并采用高速串行收發(fā)器Rocket I/O, 實現(xiàn)數(shù)據(jù)率為2.5 Gbps的高速串行傳輸。關(guān)鍵詞: 高速串行傳輸; Rocket I/O; Aurora 協(xié)議
為促使FPGA 芯片與串行傳輸技術(shù)更好地結(jié)合以滿足市場需求, Xilinx 公司適時推出了內(nèi)嵌高速串行收發(fā)器RocketI/O 的Virtex II Pro 系列FPGA 和可升級的小型鏈路層協(xié)議———Aurora 協(xié)議。Rocket I/O支持從622 Mbps 至3.125 Gbps的全雙工傳輸速率, 還具有8 B/10 B 編解碼、時鐘生成及恢復(fù)等功能, 可以理想地適用于芯片之間或背板的高速串行數(shù)據(jù)傳輸。Aurora 協(xié)議是為專有上層協(xié)議或行業(yè)標(biāo)準的上層協(xié)議提供透明接口的第一款串行互連協(xié)議, 可用于高速線性通路之間的點到點串行數(shù)據(jù)傳輸, 同時其可擴展的帶寬, 為系統(tǒng)設(shè)計人員提供了所需要的靈活性[4]。但該協(xié)議幀格式的定義存在弊端,會導(dǎo)致系統(tǒng)資源的浪費。本文提出的設(shè)計方案可以改進Aurora 協(xié)議的固有缺陷,提高系統(tǒng)性能, 實現(xiàn)數(shù)據(jù)率為2.5 Gbps 的高速串行傳輸, 具有良好的可行性和廣闊的應(yīng)用前景。
標(biāo)簽:
Rocket
2.5
高速串行
收發(fā)器
上傳時間:
2013-10-13
上傳用戶:lml1234lml
-
高速串并轉(zhuǎn)換器的設(shè)計是FPGA 設(shè)計的一個重要方面,傳統(tǒng)設(shè)計方法由于采用FPGA 的內(nèi)部邏輯資源來實現(xiàn),從而限制了串并轉(zhuǎn)換的速度。該研究以網(wǎng)絡(luò)交換調(diào)度系統(tǒng)的FGPA 驗證平臺中多路高速串并轉(zhuǎn)換器的設(shè)計為例,詳細闡述了1 :8DDR 模式下高速串并轉(zhuǎn)換器的設(shè)計方法和16 路1 :8 串并轉(zhuǎn)換器的實現(xiàn)。結(jié)果表明,采用Xilinx Virtex24 的ISERDES 設(shè)計的多路串并轉(zhuǎn)換器可以實現(xiàn)800 Mbit/ s 輸入信號的串并轉(zhuǎn)換,并且減少了設(shè)計復(fù)雜度,縮短了開發(fā)周期,能滿足設(shè)計要求。關(guān)鍵詞:串并轉(zhuǎn)換;現(xiàn)場可編程邏輯陣列;Xilinx ; ISERDES
標(biāo)簽:
FPGA
多路
串并轉(zhuǎn)換
上傳時間:
2013-11-17
上傳用戶:hxy200501
-
網(wǎng)絡(luò)監(jiān)控工具服務(wù)器端
標(biāo)簽:
上傳時間:
2015-01-19
上傳用戶:xcy122677
-
sct-1.06 Linux下的串口調(diào)試器
標(biāo)簽:
Linux
1.06
sct
串口
上傳時間:
2014-11-30
上傳用戶:lili123
-
Gserial 串口調(diào)試器 gserial
標(biāo)簽:
Gserial
gserial
串口
調(diào)試器
上傳時間:
2015-02-12
上傳用戶:er1219