本科畢業論文開題報告
時間:2022-08-13 08:52:00
導語:本科畢業論文開題報告一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
論文題目
通用預付費安全組件技術研究-下位機
學生姓名
馬楊軍
專業班級
計本021
性別
男
⒈課題研究意義及現狀
預付費水,電,氣一卡通系統為民用智能水表,電表,管道燃氣表及小區費用管理(如衛生管理費,治安費,停車費,寬帶網絡費等)提供了"一卡通"管理平臺;我們制作的自能水表,電表及管道燃氣表,則為"一卡通"管理提供了可靠,實惠,實用的表具.兩者相結合,只用一張IC卡,就能實現水,電,氣及小區費用等多種收費的管理,省時,剩事,省力,不僅方便了居民生活,更有利于管理部門的集中統一控制,是今后小區智能化管理的必趨勢.
一戶一卡,一卡多表,每張IC卡最多可管理8塊智能表,為將來系統的擴展提供了良好的技術基礎.
卡中數據安全可靠,各表數據均獨立存放于IC卡中,互不影響;卡中各類數據均進行加密處理,且使用校驗和檢錯技術和寫卡密碼保護機制,確??ㄖ薪灰讛祿目煽?準確和完整.
采用一套管理系統,功能完善,操作簡單.對遺失卡用戶可進行補卡操作,對換表用戶可進行換表處理,對需要退費的用戶可進行退費處理.
融合了IC卡預付費水表,電表,氣表的各種功能特點.
適用范圍:小區智能化管理;學校智能化后勤管理
隨著預付費系統應用的發展,安全認證要求越來越多,要求安全系統滿足不斷發展的業務要求.針對安全要求的不斷變化,本項目采用開放的系統架構和安全功能模塊化的設計思想,通過靈活的配置,滿足各種安全要求.
⒉課題研究的主要內容,預期目標和研究方案
研究內容:
本項目主要研究基于ISO-7816的智能卡技術,實現獨立于SmartCos的安全認證下位機組件.
1.IC卡技術:
研究基于SmartCos的IC卡技術,實現ISO7816-4通訊.
2.智能卡框架技術:
研究基于ANSIC的智能卡技術,實現獨立于COS的安全認證組件.
3.智能卡模擬技術:
研究獨立于具體設備的IC卡應用組件,探索設備內嵌安全組件的軟件模擬方法.
預期目標:
完成智能卡的讀取,分辨,和處理相關卡的各項功能,做到安全,可靠地使用.
研究方案
基于ANSIC實現下位機軟件的設備獨立性,以預付費電卡表為例實現下位機的安全組件功能,實現密鑰存儲,傳輸和管理,以及與上位機的通訊和認證功能.
⒊課題進度計劃
2005-1-20~2005-2-10:熟悉ISO-7816的智能卡技術.
2006-2-11~2006-3-1:熟悉E-SAM模塊的功能.
2006-3-2~2005-3-25:完成智能卡讀取,處理等模塊功能.
2005-3-26~2005-4-1:對所做的功能進行測試,修改.
2005-4-2~2005-5-1:撰寫畢業論文.
⒋參考文獻
[1]陳邦媛.射頻通信電路[M].北京:科學出版社,2002
[2]王愛英.智能卡技術――IC卡[M].北京:清華大學出版社,2000
[3]李朝青.單片機原理及接口技術[M].北京:北京航空航天大學出版社,1998
[4]張肅文,陸兆熊.高頻電子線路[M].北京:高等教育出版社,1992
指導教師意見
指導教師簽名:
年月日
論文摘要
中文摘要:本文針對IC卡式電子預付費電能表的實際設計出發,介紹了接觸式IC卡智能電表的IC卡選用,及讀卡器的設計與實現,著重于IC卡數據記錄,讀取原理介紹,功能實現過程.設計基于IC卡的預付費電子電能表系統,采用AT24CO1實現數據記錄,資料保存.采用MCS-51系列單片機89C52微處理芯片與計算機串行口通訊實現微機對卡的數據操作.
關鍵詞:智能IC卡,讀寫器
Abstract:
TheICcard''''schoiceofcontactedICcardsintelligent-meterisintroducesinthethesis,andthedesignandrealizationofcard-readeraswell.AccordingtothepracticaldesignofIC-Cardwiseandelectricallypreparedelectricitymeter.Andthestressisputontheintroductionofdatarecord;readingprincipleofICcardelectricallypreparedelectivelysystemisbasedonICcard.Inwhichisadoptedtofitfuldatarecordandstoreofreference,andsingle-chipcomputer89C52microprocessorcommunicationareadoptedtorealizethecomputer-to-carddataoperation.
Keywords:intelligentICcard,cardreader
目錄
引言
第一章:總體方案設計與論證
第二章:IC卡系統設計與實現
2.1IC卡介紹
2.2讀卡器基本原理及設計
第三章:系統硬件設計與實現
3.1標準異步串行通信接口技術
3.289C51與24C01通信的硬件設計
第四章:系統軟件設計與實現
4.1模擬I2C總線數據傳輸編程
4.2系統軟件程序流程圖
附錄一系統硬件電路圖
附錄二參考文獻
----引言----
1970年,法國人羅蘭德・默瑞諾(RolandMoreo)第一次將可編程的集成電路芯片(IC-IntegratedCircuit)放于卡片中,使卡片具有了更多的功能,這一發明給世界帶來了極大的改變,這種卡片就是被稱為IC卡的新型智能卡.
IC卡概念及分類
(1).什么是IC卡以下幾種解釋從不同方面對IC卡進行了描述.
①其外型和信用卡一樣,但卡上含有符合國際標準化組織(ISO)有關標準的集成電路芯片(IC).
②由一個或多個集成電路芯片組成,并封裝成便于攜帶的卡片;具有暫時或永久性的數據存儲能力,其內容可供外部讀取或供內部處理,判斷使用;具有邏輯和數學運算處理能力,用于識別和響應外部提供的信息和芯片本身的處理需求.
③實際上,IC卡就是集成電路卡.它是一種隨著半導體技術的發展和社會對信息安全性等要求的日益提高應運而生的,是一種將具有微處理器及大容量存儲器等集成電路芯片嵌裝于塑料基片上而制成的卡片.
在IC卡的左上角封裝有IC芯片,其上覆蓋有6或8個觸點和外部設備進行通訊.
IC卡屬于半導體卡.半導體卡片采用微電子技術進行信息的存儲,處理,又可以分為:有接觸點卡和無接觸點卡.前者由讀寫設備的接觸點和卡片上的觸點相接觸,進行信息的讀寫;而后者則與讀寫設備無電路接觸,由非接觸式的讀寫技術進行讀寫(例如,光或無線電技術).
有接觸點卡又分為:存儲卡和智能卡(帶微控制器).存儲卡又可分成RAM卡(可讀寫)和ROM卡(只讀).
此外,從功能上IC卡大致可分成三類::存儲器卡,智能卡(帶微控制器)和超級智能卡.其中,存儲器卡由于價格便宜,開發應用相對簡單等原因,目前在各個領域已有大量的應用,還可以再分為以下兩種:普通存儲器IC卡,智能存儲器IC卡等.
IC卡應用技術
IC卡是硬件與軟件技術的高度結合,主要技術包含三個部分:硬件技術,軟件技術及相關應用領域的專業技術.
IC卡軟件,指智能卡中所出現的IC卡系統監控程序或IC卡操作系統,而IC卡操作系統則更完善,復雜.智能卡的硬件就是一個小型的微控制器系統,只是在安全方面有更多的設計而已.而軟件則是智能IC卡實現其安全性的關鍵.
一個較完善的IC卡操作系統必須能夠管理一個或多個相互獨立的應用.它應能為有關應用提供相應的應用管理,傳輸管理,文件管理,安全管理等功能.
IC卡作為一種電子信息媒體,同磁卡,光卡等信息媒體一樣,必然由計算機或相應的專用設備對其中存儲的信息進行讀取,分析,處理.而這種設備中往往不具備IC卡的讀寫接口,IC卡讀寫設備就是計算機同IC卡之間的接口設備.
從IC卡讀寫方式的角度分析,IC卡讀寫技術可以分為兩大類:
一,通過機械觸點進行電氣連接,與計算機等設備進行通訊.此種類型的IC卡為接觸式IC卡,它同計算機之間的接口設備為接觸式IC卡讀寫設備,是目前應用最廣泛的IC卡.
二,IC卡同計算機之間通過無線方式,如無線電波,進行通訊..此種類型的IC卡為無接觸式IC卡,它同計算機之間的接口設備,即為無接觸式IC卡讀寫設備.目前,由于技術及應用上的限制,此種IC卡的應用還不很廣泛.
一般IC卡所使用的主要芯片分為通用芯片和專用芯片兩大類.所謂通用芯片,就是普通的集成電路芯片,如本設計中應用的美國ATMEL公司的AT24C01兩線串行連接協議存儲芯片.其出廠時就有兩種供貨形式,一是封裝成集成電路直接提供給最終用戶使用,二是以裸芯片的形式提供給IC卡生產廠商封裝成IC卡.裸芯片幾乎沒有安全性設計,也不完全符合目前IC卡的國際標準,但因其開發使用簡單,價格便宜,比較適合于初期的對安全性要求不高的IC卡應用.所謂專用芯片,就是專為IC卡而設計,制造的芯片,如荷蘭Philips公司的PCB2032/2042芯片.這種芯片符合目前IC卡的ISO國際標準,具有較高的安全性.
IC卡所使用的專用芯片一般分為存儲器芯片和微處理器芯片兩大類.存儲卡使用存儲器芯片作為卡芯;智能卡則使用微處理器芯片作為IC卡芯片.
IC卡常使用的存儲器芯片種類及特性
存儲器類型:
1.ROM(ReadOnlyMemory)
只讀存儲器,一次寫入后不可更改或刪除.一般由芯片制造商進行掩膜寫入信息,價格便宜,適合于大量的應用.
2.RAM(RandomAccessMemory)
隨機存取存儲器,掉電后信息丟失,卡片上需電源.一般和其它種類的存儲器共同使用,作為信息處理時的臨時存儲.
3.PROM(ProgrammableROM)
一次編程多次讀出存儲器,可由用戶編程寫入應用信息,價格較便宜適合于較大量的應用.
4.EPROM(ErasablePROM)
可在紫外線擦除之后寫入信息.目前,在IC卡中已經很少應用.
5.E2PROM(ElectronicallyEPROM)
電可擦除,寫入存儲器.
目前,在IC卡上應用得最多的為帶加密運算的微控制器(MPU+CPU)邏輯控制,管理功能,加密,解密等運算功能如:飛利浦公司的83C852等.
不帶加密運算的微控制器(CPU)邏輯控制,管理等功能如:日立公司的H8系列等.
第一章:總體方案設計與論證
方案設計與論證:
電子式電能表系統一般包括:電能表部分和IC卡讀寫器部分,設計中IC卡是作為數據的存儲中介,因而IC卡的選用十分重要.選用的IC卡應能夠完成數據存儲,電能表識別等功能,還應具有密碼保護,數據加密的功能.數據能否正確寫入IC卡,因而微機與讀寫器通訊也是關鍵.這兩部分直接影響到整個系統的功能實現與否,下面對各種方案的選擇進行設計和論證:
IC卡選用方案設計
方案一:采用只讀識別卡
采用只讀識別卡作為本系統的存儲媒介,通過電能表識別IC卡持有者身份,利用微機與電能表通訊得取用戶的數據信息(如:用戶個人資料,預存電費,已用電費…),進行電費計費.其優點是:無須對IC卡本身進行操作,可以防止人為對卡保存的個人資料的篡改;使用壽命長,硬件成本低.缺點:需要編寫專用的微機操作系統進行數據管理程序,異地通訊程序,在無微機的地域不適用,通用性不強.
方案二:采用存儲卡作為本系統的存儲媒介
利用微機控制專用讀寫器對IC卡進行數據操作(對卡充值),通過電能表讀取IC卡上的數據,(預存電費,已用電量…)進行電費計費.其優點是:只要使用專用的電能表,IC卡就能通用,通用性強;硬件成本不高;其缺點是:數據保密性不強.其典型型號有:
AT24C01A/02/04/08/16/32/64二線串行E2PROM;
AT93C46/56/66三線串行E2PROM;
Microchip24LC01A/02/04/08/16/32/65二線串行E2PROM;
方案三:采用邏輯加密存儲卡作為本系統的存儲媒介
加密存儲器卡(Securitycards接觸型)內嵌芯片在存儲區外增加了控制邏輯.在訪問存儲器前,需要核對密碼.只有密碼正確,才能存取數據.允許連續密碼核驗的錯誤次數很少(一般在十次以內),可以有效防止非法試探.若在限定的次數密碼仍不對,則卡片死鎖作廢.利用微機控制專用讀寫器對IC卡進行數據操作(對卡充值,更改資料…),通過電能表進行密碼識別,讀取IC卡上的數據(預存電費,已用電量…),進行電費計費.其優點是:只要使用專用的電能表,IC卡就能通用,通用性強;數據保密性強.缺點是:較以上二種方案成本過高.典型型號有:
AT88SC101內嵌帶加密邏輯1K串行E2POM(一個應用區);
AT88SC102內嵌帶加密邏輯1K串行E2POM(二個應用區)
SLE4404416位帶內部PIN校驗的智能E2POM;
SLE44281K字節E2POM,帶寫保護和可編程密碼;
1.1.4方案四:采用CPU卡作為存儲媒介
CPU卡(SMARTCARDS接觸型)內嵌芯片相當于一個特殊類型的單片機,內部除了帶控制器,存儲器,時序控制邏輯外,還帶有算法單元和操作系統.IC卡本身可以完成所有的數據操作,其保密性更強.其特點是存儲容量大,處理能力強,信息存儲安全等特性,因此,被廣泛應用于信息安全性要求特別高的場合.其典型型號有:
MC68HC05SC011.8KROM/36字節RAM/1KEPROM/無E2POM;
MC68HC05SC216KROM/128字節RAM/無EPROM/3KE2POM;
MC68HC05SC266KROM/224字節PAM/無EPROM/1KE2POM;
MC68HC05SC2716KROM/240字節PAM/無EPROM/3KE2POM;
MC68HC05SC2813KROM/240字節PAM/無EPROM/8KE2POM;
MC68HC05SC2913KROM/512字節PAM/無EPROM/4KE2POM;
1.1.5方案五:采用射頻CPU卡
射頻CPU卡(RFCPU非接觸型)的信息存取是通過無線電波來完成的,主機與射頻卡之間沒有機械觸點,其內嵌電路除了存儲單元,控制邏輯外,還有電源和射頻收發電路.這類卡主要用于存取頻繁,可靠,安全要求特別高的場合.其優點是:IC卡與讀寫器無需接觸,減少了機械磨損,卡的使用壽命很長,使用方便,其缺點是:讀卡器電路復雜,設計成本高.其典型型號有:
型號
程序存儲器容量(KB)
RAM容量(B)
AT88SC51
4
128
AT88SC52
8
256
AT88SC53
12
256
AT88SC54
16
256
AT88SC54C
16
256
AT88SC55
20
512
較以上五種方案,方案三采用邏輯加密存儲卡作為數據媒,方案四采用CPU卡優于方案一和方案二.但是此方案中的邏輯加密存儲卡極難買到,而且其加密,解密過程過于復雜,非有專業知識較難實現.方案四中采用CPU卡,雖然電路簡單,成本亦不高,但是IC卡的內部數據處理過程較復雜,設計無需采用該類IC卡,而射頻CPU卡由于電路復雜,成本較高,調試較困難,根據本設計的特點和比較各種方案的可行度等因素,決定采用方案二選用存儲卡作為數據存儲媒介,其數據保存,傳輸與方案三中基本相同,設計電路簡單.保密性通過程序加密完成,在設計中,以非加密存儲器卡作為售電的傳輸媒質,具體型號是ATMEL公司的AT24C01A,二線串行E2POM.用VC++再微機上編制相應的售電管理系統,配以相應的讀卡器實現對IC卡的初始化,卡號識別,充值等操作.
第二章:IC卡系統設計與實現
IC卡介紹
2.1.124C01的基本原理:
24C01的特點是單相電源供電,工作電壓范圍寬:2.5~5.5V;低功耗CMOS技術(100KHZ,2.5V和400KHZ,5V兼容),自定時寫周期(包含自動擦除),頁面寫周期的典型值為2ns,具有硬件寫保護.
器件型號24C01的結構和引腳如圖所示:
其中:SCL---串行時鐘端
SDA---串行數據端
WP---為寫保護,當WP為高電平存儲器只讀;當WP為低電平時存儲器可讀可寫.
A0,A1,A2---片選或塊選
SDA為漏極開路端,需接上拉電阻到VCC.數據的結構為X8位.信號為電平觸發,而非邊沿觸發.輸入端內接有濾波器,能有效抑制噪聲.自動擦除(邏輯"1")在每一個寫周期內完成.
24C01采用I2C規程,運用主從雙向通信.器件發送數據到總線上,則定義為發送器,器件接收數據則定義為接收器.主器件(通常是微控制器)和從器件可工作與接收器和發送器狀態.總線必須有主器件控制,主器件產生串行時鐘(SCL),控制總線的傳送方向,并產生開始和停止條件.串行E2PROM為從器件.無論主控制器,還是從控制器,接受一個字后必須發出一個確認信號ACK.
開始和停止位控制總線有效.操作在開始位控制下開始,再停止位控制下結束.開始位為SCL為低,SDA由高到低變化.停止位為SCL為高時,SDA由低到高變化.
當SCL為高時,數據穩定有效,在SCL脈沖的低電平期間數據SDA改變,變為所傳輸的數據位.對每一個SCL脈沖,只能傳送一位數據.
2.1.2控制字節要求:
開始位以后,主器件送出8位控制字節.控制字節的結構(不包括開始位)如下所示:
1010
A2A1A0
R/W(1/0)
I2C從器件地址
片選信號
讀寫控制位
說明:
(1).控制字節的第1~4位為從器件地址位(存儲器為1010).控制字節中的前4為碼確認器件的類型.此4位碼右飛利浦公司的I2C規程所決定.1010碼即為從器件為串行E2PROM的情況.串行E2PROM將一直處于等待狀態,直到1010碼發送到總線上為止.當1010碼發送到總線上,其他非串行E2PROM從器件將不會影響.
(2).控制字節的第5~7位為1~8片的片選或存儲器內的塊地址選擇位.此三個控制位用于選片或者內部塊選擇.此處24C01內部無連接.
器件
容量
(Kbit)
內部塊數
頁面字節
控制字(位)
引腳
A2A1A0
A2A1A0
24LC01B,24C01
1
1
8
XXX
內部無連接
A2,A1,A0引腳無內部連接,這三位無關緊要;作為器件選擇的,可接高電平或低電平.
(3).控制字節第8位為讀,寫操作控制碼,如果此位為1,下一字節進行讀操作(R);此字節為0,下一字節進行寫操作(W).
當串行E2PROM產生控制字節確認位以后,主器件總線上將傳送相應的字地址或數據信息.
2.2讀卡器基本原理及設計
2.2.1確認要求:
在每一個字節接收到后,接收器件必須產生一個確認信號位ACK.主器件必須產生一個與此確認位相應的額外時鐘脈沖.若不在從器件輸出的最后一個字節中產生確認位,主器件必須發一個數據結束信號給從器件.在這種情況下.從器件必須保持數據線為高電平(用ACK表示),使的主器件能產生停止條件.
2.2.2寫操作:
1.字節寫:
在主器件發出開始信號以后,主器件發送寫控制字節即10101A2A1A00(其中R/W控制位為低電平"0").指示從接收器被尋址,由主器件發送的下一個字節字地址將被寫入到24C01的地址指針.主器件接受來自24C01的另一個確認信號以后,發送數據字節,并寫入到尋址的存儲器地址.24C01再次發出確認信號,同時主器件產生停止條件P啟動內部寫周期.在內部寫周期內24C01將不產生確認信號.如下圖:
2.頁面寫:
如同字節寫方式,先將寫控制字節,字地址發送到24C01,接著發N個數據字節,主器件發送不多于一個字節的數據字節到24C01,這些數據字節暫時存在片內頁面緩存器中,在主器件發送停止信號后寫入常數.如果主器件在產生停止條件以前要發送多于一頁字的數據,地址計數器將會循環,并且先接收到的數據將被覆蓋.象字節寫操作一樣,一旦停止條件被接收到,則內部寫周期將開始.見下圖:
3.寫保護
當WP端連接到VCC,24C01可被用做串行ROM,編程將被禁止,且整個存儲器寫保護.
2.2.3讀操作:
當從器件地址的R/W位被置為"1",啟動讀操作.存在三種基本讀操作類型;讀當前地址內容,讀隨意地址內容.
1.讀當前地址內容:
24C01片內包含一個地址計數器,此地址計數器保持被存取的最后一個字的地址,并在片內自動加1.因此,如果以前存取(讀或者寫操作均可)的地址為N,下一個讀操作從N+1地址中讀出數據.在接收到從器件的地址中R/W為1的情況下,24C01發送一個確認位,并且送出8位數據字.主器件將不產生確認位(相當于產生ACK),但產生一個停止條件.24C01不再繼續發送.見下圖:
2.讀隨意地址內容:
這種方式允許主器件讀存儲器任意地址內容,操作如下圖表示:
主器件發出1010A2A1A0后發W位,再發讀的存儲器地址,在接收到從器件的確認位ACK后產生一個開始條件S,以結束上述寫過程,再法一個讀控制字節,從器件24C01在發ACK信號后發出8位數據,主器件發ACK后發出一個停止位,24C01不再發后續字節.
3.讀順序地址內容:
讀順序地址內容的方式與讀隨意地址內容的方式相同,只是在24C01發送第一個字節以后主器件不發ACK和STOP.而是發ACK確認信號,控制24C01發送下一個順序地址的8位數據字,直到X個數據讀完.見下圖表示:
4.防止噪聲:
24C01使用了一個VCC門檢測器電路.在一般條件下,如果VCC低于1.5V,門檢測器對內部擦,寫邏輯不使能.
SCL和SDA輸入端接有施密特觸發器和濾波器電路,即使在總線上有噪聲存在的情況下它們也能抑制噪聲峰值以保證器件正常工作.
第三章:系統硬件設計與實現
3.1標準異步串行通信接口技術
3.1.1RS-232C總線標準接口:
RS-232標準接口的全稱是:"使用二進制進行交換的數據設備和數據通信設備(DCE)之間的接口".計算機,外設,顯示終端等都屬于數據終端設備,而調制解調器則是數據通信設備.RS-232在通信線路中的連接的方式如下圖所示:
"RS-232C"中的RS是RECOMMENDEDSTANDARD的縮寫.232是標識符,C表示此標準修改了三次(原來有過RS-232A,RS232-B標準)
RS-232C定義了20根信號線,其中最常用的信號線的定義,分類及功能見下表:
引腳號
信號名稱
簡稱
方向
信號功能
1
保護地
-
-
接設備外殼,安全地線
2
發送數據
TXD
DCE
DTE發送串行數據
3
接收數據
RXD
DTE
DTE接收串行數據
4
請求發送
RTS
DCE
DTE請求切換到發送方式
5
清除發送
CTS
DTE
DCE以切換到準備接收(清除發送)
6
數傳設備就緒
DSR
DTE
DCE準備就緒
7
信號地
-
-
信號地
8
載波檢測(RLSD)
DCD
DTE
DCE已接收到遠程信號
20
數據終端就緒
DTR
DCE
DCE準備就緒
22
振鈴指示
RI
DTE
通知DTE,通信線路以妥
電氣特性:
由于RS-232C是早期(1969年)為促進公用電話網絡進行數據通信而制定的標準,其邏輯電平是對地對稱的,與TTL,MOS邏輯電平完全不同.邏輯0電平為+5V~+15V之間,邏輯1電平為-5V~-15V之間,因此,RS-232C驅動器與電平連接必須經過電平轉換.
RS-232C由于發送器和接收器之間具有公共的信號地,不能使用雙端信號,因此,共膜噪聲會耦合到信號系統中,這是迫使RS-232C使用較高傳輸電壓的主要原因.即使如此,該標準的信號傳輸速率也只能達到20KB/S,而且最大距離僅15M.只有在這種條件下才能可靠地進行數據傳輸.下表列出了RS-232C的主要電器性能:
不帶負載時驅動器輸出電平V0
<25V(-25~+25V)
負載電阻RL范圍
3~7K
負載電容(包括線間電容)CL
+3V
傳號(MARK)或邏輯"1"時
驅動器輸出電平
-5~-15V
在負載端
<-3V
輸出短路電流
<0.5A
驅動器轉換速率
<30V/us
驅動器輸出電阻R0
<300)(在斷電條件下測量)
3.1.2RS-232C總線標準連接系統:
當計算機與終端之間利用RS-232C作近程連接時,這時有幾根線實現交換連接.
下圖為計算機與讀寫器(終端)之間利用RS-232C連接的最常用的交叉連線圖.圖中"發送數據"與"接收數據"是交叉相連的,使得兩設備都能檢測出對方是否已經準備好.
3.1.3MAX232芯片及接口電路:
MAX232芯片介紹:
MAX232芯片是MAXIM公司生產,包行兩路接收器和驅動器的IC芯片,適用于各種EIA-232C和V.28/V.24的通信接口.MAX232芯片內部有一個電壓變換器,可以把輸入的+5V電源電壓變換成為RS-232C所輸出電平所需的10V電壓.所以,采用此芯片的串行通信系統只需單一的+5V電源就可以了.對于沒有12V電源的場合,其適用性更強.
MAX232芯片的引腳結構如圖:
實際RS232接口電路:
在實際中,器件對電源噪聲很敏感.因此,VCC必須對地加去耦電容C5,其值為0.1F.電容C1,C2,C3,C4取同樣數值的鉭電解電容1.0F/16V,用以提高抗干擾能力,再連接時必須盡量靠近器件.
注意:如使T1IN接單片機的發送端TXD,則PC機的RS-232的接收端RSD一定要對應接T1OUT引腳;同時,R1OUT接單片機的RXD引腳,PC機的RS-232的發送端TXD對應接R1IN引腳,其接口電路如下圖:
3.289C51與24C01通信的硬件設計
3.2.189C51與24C01通信的硬件電路圖(見附圖)
圖為89C52微控制器與24C01串行EEPROM的典型連接.圖中P1.6提供24C01的時鐘SCL,P1.7和24C01內部進行數據傳送,A2A1A0內部無連接,為無關位.
注意:圖中的WP為EEPROM的寫保護信號,高電平有效,因為我們要進行寫入操作,所以只能把它接低電平.
第四章:系統軟件設計與實現
4.1模擬I2C總線數據傳輸編程:
24C01系列是采用I2C接口的串行EEPROM器件.而51系列單片機大多無I2C總線接口功能,這就要靠軟件來模擬了.
I2C總線在標準方式下的最高時鐘頻率為100KHZ,時鐘信號最小時端為4.7S,高電平時端不得小于4S,這就決定了器件的最大傳送率不大于10KB/S.可用展寬TLOW的辦法來降低數據傳送率.
用普通I/O線模擬I2C總線數據傳送時,必須遵從定時規范.下圖繪出了啟動,停止,發送應答ACK("0"數據位)以及發送反態應答位("1"數據位)的時序規范.
常用程序段編程:
4.1.1產生起始位和停止位:
如果單片機所用晶體振蕩器的頻率為6MHZ,則每個周期為2S根據上圖的(A),(B),我們可分別寫出產生時鐘SCL和SDA的發送起始條件和停止條件兩段子程序.本設計中晶體頻率并非6MHZ,而是使用12MHZ的晶振頻率,則要相應增加各程序段中NOP指令的條數,NOP指令應增至4條以滿足時序的要求.
(A).發送起始條件STAT(B).發送停止條件STOP
STA:SETBP1.7STOP:CLRP1.7
SETBP1.6SETBP1.6
NOPNOP
NOPNOP
NOPNOP
NOPNOP
CLRP1.7SETBP1.7
NOPNOP
NOPNOP
NOPNOP
NOPNOP
CLRP1.6CLRP1.7
RETRET
4.1.2發送應答位和反態應答位子程序:
如上圖(C),(D)編出ACK和ACK的發送子程序:
(A).發送應答位ACK(B).發送反態應答位ACK
MACK:CLRP1.7MNACK:SETBP1.7
SETBP1.6SETBP1.6
NOPNOP
NOPNOP
NOPNOP
NOPNOP
CLRP1.6CLRP1.6
SETBP1.7CLRP1.7
RETRET
4.1.3應答位檢查子程序:
在I2C中總線數據傳送中,接收器收到發送器傳送來的一個字節后,必須向SDA線上返送一個應答位ACK,表明此字節已經收妥.本子程序使單片機產生一個額外的時鐘(第九個時鐘脈沖,在脈沖的高電平期間讀ACK應答位,并將它的狀態被復制到FO標志中以供檢查.若有正常ACK,則FO標志為0,否則為1.
CACK:SETBP1.7;P1.7作為輸入
SETBP1.6;第9各時鐘脈沖開始
NOP
MOVC,P1.7;讀SDA線
MOVFO,C;轉存入FO中
CLR;時鐘脈沖結束
NOP
RET
4.1.4字節數據發送子程序:
由于是SDA接在并行口,無移位寄存器,因此數據通過指令完成移位在從P1.7串行輸出.遵循時序要求數據在時鐘低電平時變化,高電平時穩定,每一個時鐘脈沖傳送一位,編寫字節數據傳送子程序.
該子程序的入口條件時待發送的字節位于累加器ACC中.
WRB:MOVR7,#8;位計數器初值
WLP:RLCA;欲發送位移入C中
JCWR1;此位為1,轉入WR1
CLRP1.6;此位為0,發送0
SETBP1.7;時鐘脈沖變為高電平
NOP;延時
NOP
NOP
NOP
CLTP1.6
DJNZT7,WLP
RET
WR1:SETBP1.7
SETBP1.6
NOP
NOP
CLRP1.6
CLRP1.7
DJNZR7,WLP
RET
4.1.5字節數據接收子程序:
該子程序的功能是在時鐘的高電平時數據以穩定,讀入一位,經過8個時鐘從SDA線上讀入一個字節數據,并將所讀字節存于A和R6中.
RDB:MOVR7,#8;R7存放位計數器初值
RLP:SETBP1.7;P1.7輸入
SETBP1.6;SCL脈沖開始
MOVC,P1.7;讀SDA線
MOVA,R6;取回暫存結果
RLCA;移入新接收為位
MOVR6,A;暫存入R6
CLRP1..6;SCL脈沖結束
DJNZR7,RLP;未讀完8位,轉RLP
RET;8位讀完,返回
4.1.6N個字節數據發送子程序:
子程序入口條件:
控制字節1010A2A1A0W以存放在片內RAM的SLA單元中.
待發送數據各字節已位于片內RAM以MTD+1為起始地址的N個連續單元中.
NUMBYT單元中存有欲發送數據的字節數.
24C01接收到數據的存放首址存放在片內RAM和MTD單元.
WRNBYT:PUSHPSW;保護現場
WRNBYT1:MOVPSW,#18H;改用第3組工作寄存器
CALLSTA;發起始條件
MOVA,SLA;讀寫控制字節
CALLWRB;發送寫控制字節
CALLCACK;檢測應答位
JBFO,WRNBYT;無應答位,重發
MOVR0,#MTD;有應答位,繼而發數據,第一個數據為首址
MOVR5,NUMBYT;R5存讀數據字節數
WRDA:MOVA,@R0;讀一個字節數據
LCALLWRB;發送此字節
LCALLCACK;檢測ACK
JBFO,WRNBYT1;無ACK,重發
INCRO;調整指針
DJNZR5,WRDA;尚未發完N個字節,繼續
LCALLSTOP;全部數據發完,停止
POPPSW;恢復現場
RET;返回
4.1.7讀,寫數據程序:
從24C01的當前地址開始讀出N個字節數據存入片內RAM以MRD為首地址的N個單元中.
這段子程序的入口條件:
片內RAM中的SLA單元存有1010A2A1A0R讀控制字節.
NUMBYT單元中存有欲接收數據的字節數
子程序的出口條件:
所讀完的數據將存入片內RAM以MRD為首地址的N個連續單元內.
RDNBYT:PUSHPSW;發送起始條件
RDNBYT1:MOVPSW,#18H;讀入讀控制字節
LCALLSTA;發送讀控制字節
MOVA,STA;檢測ACK
LCALLWRBYT;無ACK,重新開始
LCALLCACK;接受數據緩沖區指針
JBFO,RDNBYT1;讀一個字節
MOVR1,#MRD;存入接收數據緩沖區
GO-ON:LCALLRDB;未全接收完,轉ACK
MOV@R1,A;以讀完所有字節,發ACK
DJNZNUMBYT,ACK;發停止條件
LCALLMNACK
LCALLSTOP
POPPSW
RET
ACK:LCALLMACK;發ACK
INCR1;調整指針
AJMPGO-ON;繼續接收
4.2系統軟件程序流程圖
4.2.1PC機通訊軟件框圖:
4.2.2單片機通訊軟件框圖:
附錄一:
附錄二參考文獻
[1]康華光編.電子技術基礎―模擬部分.第四版.北京:高等教
育出版社,1992年
[2]康華光編.電子技術基礎―數字部分.第四版.北京:高等
教育出版社,1992年
[3]邱關源編.電路.第三版.北京:高等教育出版社,1989年.
[4]蔡美琴.張為民.沈新群.張榮娟主編.MCS-51系列單片機系
統及應用.第一版,北京:高等教育出版社,1992年.
[5]李朝青編.PC機及單片機數據通信技術.北京:航空航天大
學出版社,
[6]王卓人.鄧晉鈞.劉宗祥編.IC卡的技術與應用.電子工業出
版社,1999年.
[7]丁元杰主編.單片微機原理及應用.第二版.北京:機械工
業出版社,2000年.
[8]劉樂善主編.微型計算機接口技術及應用.華中理大學出版
社,
[9]周明德主編.微型計算機系統原理及應用.第三版.北京:清華大學出版社,1998年.
[10]王愛英.智能卡技術――IC卡[M].北京:清華大學出版社,2000
基于IC卡預付費電子電能表系統設計與實現
第頁共29頁
接收數據
發送數據
RXD
TXD
終
端
接收數據
發送數據
TXD
RXD
計
算
機
屏蔽地
數據終端就緒
數據終端就緒
數據終端就緒
數據終端就緒
信號線