時間:2023-03-10 14:47:48
序論:好文章的創作是一個不斷探索和完善的過程,我們為您推薦十篇接口設計論文范例,希望它們能助您一臂之力,提升您的閱讀品質,帶來更深刻的閱讀感受。
ISA總線:(IndustryStandardArchitecture:工業標準體系結構)是IBM公司為PC/AT電腦而制定的總線標準,也稱為AT標準,為8/16位體系結構,最高工作頻率為8MHz,數據傳輸率大約是16MB/S,地址線24條,可尋訪16M字節地址單元。由于本文使ISA總線工作在8位I/O傳輸模式,使用了ISA總線信號中的時鐘線(ISA_CLK)、地址線(ISA_ADDR):A0~A9、數據線(ISA_DATA):D0~D7、讀信號線(ISA_IOR)、寫信號線(ISA_IOW)、地址鎖存使能(ISA_ALE)、地址選通信號(ISA_AEN)等。本設計采用了與C語言較為相似的VERILOGHDL硬件描述語言對ISA總線邏輯接口進行了描述。
本文要實現的是ISA接口通過FPGA訪問串口芯片16C554,16C554是內部帶有16字節收發FIFO的通用異步收發器,具有獨立的收發控制電路。4路標準的MODEM接口,通過軟件可分別設置允許每一路中斷。波特率、數據幀格式等也都可由軟件編程設置。具體硬件結構如圖。由圖2可知上位機通過ISA總線對串口芯片16C554串口芯片的訪問需要FPGA作為橋接媒介,因此串口芯片的控制信號均由FPGA給出,其邏輯控制信號的VERILOG描述如下。當上位機對串口芯片進行讀寫時,首先需要通過FPGA將ISA地址信號譯碼為芯片的片選信號,設置串口芯片基地址為0x300,由于9位地址線的低三位為串口芯片的內部地址,因此芯片的片選信號由地址總線的高七位決定。
3結束語
2信息接口設計
在第2節中,對系統應用的信息接口進行了介紹,并對其功能進行了較為詳細的描述,根據其功能和作用位置的不同,可以將其分為信息接收接口、信息交付接口和信息擴展接口3類。
2.1信息接收接口信息接收接口的主要功能是:接收由硬件提交的信息,并對信息的格式進行檢驗和分類,最終遞交給中央處理模塊。其主要結構和工作流程如圖5所示。如圖5所示,在信息接收接口中,收到的信息首先存儲在消息緩沖中,信息格式模式匹配單元通過預先定義的合法消息格式,對消息緩沖中的信息進行匹配,監測其合法性,當出現異常時,反饋控制單元調度消息緩沖,根據異常消息的來源,向相應的硬件接口做出反饋,進而將異常消息丟棄或封閉/重置相應的硬件接口。合法的消息被送入消息分類單元,該單元維護若干個列表,列表中存儲格式化的消息數據。當中央處理模塊或其他模塊,調用相應的功能時,則通過相應的功能子接口,將對應的數據取出并交給相應的功能。信息接收接口是基礎硬件設施和軟件處理單元之間的橋梁,通過擴展消息格式化的適配功能,能夠有效拓展支持的硬件種類,從而使得系統的功能更加強大。
2.2信息交付接口信息接收接口面向的是底層硬件設備和系統,而信息交付接口面向的是上層的用戶和用戶界面,其功能是:將中央處理模塊處理完畢的數據和信息,按照不同的種類遞交給用戶界面,在用戶界面中進行集成和顯示。其主要結構和工作流程如圖6所示。與信息接收接口的不同之處在于,交付接口擔負了雙向的信息傳遞功能。首先,通過數據調用單元可以將處理完成的數據交付給用戶界面使用,根據類型的不同有圖形化數據、字節化數據、GIS數據等,用戶界面通過調用這些不同種類的數據,即可按照實際需求,合成和顯示出包含豐富內容的導航信息圖示。同時,用戶通過用戶界面對導航信息系統進行控制、設置或調用其需要的單個數據,此時用戶指令被傳遞到用戶指令解釋單元,若用戶指令合法,則通過編譯器對指令進行解釋,產生針對系統每個模塊的具體指令,并通過控制信息產生單元將具體指令轉換為系統模塊能夠識別的具體控制信息。然后利用系統控制接口,對系統的軟件和硬件進行直接的控制或設置等操作。信息交付接口是實現用戶界面的基礎,其并不關心用戶界面如何實現,終端用戶有著怎樣的具體需求,僅僅是提供了一系列標準化的數據交付接口,這樣就可以根據不同類型的船舶和不同的應用場景,設計不同的用戶界面,而不需要受到核心軟件系統的束縛。
2.3信息擴展接口與前2種接口不同,信息擴展接口是向外部開放的接口,通過這個接口,例如衛星通信網、GIS系統、AIS系統等,均可以連接入導航信息系統,為系統提供更加豐富的信息和更加強大的功能。其主要結構和工作流程如圖7所示。信息擴展接口同樣需要擔負數據的雙向傳遞任務,一方面其運行有相應數據交換/傳輸協議的協議棧,如AIS數據傳輸協議棧、VSAT衛星通信協議棧等,以便通過相應系統的接口下載和傳輸消息,同時將接收到的消息轉換為系統能夠識別的數據結構,供中央處理模塊處理。另一方面,系統根據需要,提出相應的信息下載請求,該請求通過請求處理單元,轉換為相應系統的控制和請求指令,封裝為合適的控制消息后,發送給對應的外部系統。信息擴展接口可以通過擴展外部數據交換協議棧來擴展其可以支持的外部系統種類,從而能夠綜合更多的外部信息,豐富導航信息系統的內容。
3仿真與實現
根據以上研究和設計,本文采用軟件實現的方法對導航信息系統進行仿真和模擬。采用的環境是Corei31.8GHz,4G內存,Win764bit,采用Java作為程序開發語言。仿真的重點在于實現各個接口的功能,驗證各個接口工作的有效性和高效性,依托當前較為成熟的中央處理模塊[7],實現對信息的處理和存儲,并使用Java語言開發整個模擬系統,模擬系統界面如圖8所示。通過編寫相應的代碼,模擬各種硬件設備,信息接收接口成功地收集和轉換了不同種類的消息,并通過信息交付接口遞交給用戶界面,從圖8可以看出其成功地實現了信息的收集和顯示。如圖9所示,進行信息設置的測試,通過設計控制面板,設置相應的參數,觀察能否對系統進行有效控制。通過以上實踐證明,在理論上本文所設計的接口能夠發揮相應的功能,實現導航信息的收集、處理和交付等功能,說明了本文提出的方案具有一定的可行性。
1.2編碼器設計編碼器的設計相對簡單,主要完成對待發送消息字的曼徹斯特編碼,并將其并串轉換后輸出。由于曼徹斯特碼每位數據中間均有跳變,故發送時需將每一位分割成兩位,分別發送。其工作過程為:(1)同步頭編碼,若為數據字同步頭,則編碼為“111000”(由高位到低位,下同),若為狀態字或命令字同步頭,則編碼為“000111”;(2)數據和奇偶校驗位編碼,若為‘0’,則編碼為“10”,若為‘1’,則編碼為“01”;(3)按由低到高的順序將編碼后的40位數據串行輸出。FPGA采用16MHz主時鐘,由于編碼后每位數據對應0.5μs,故將主時鐘分頻后產生2MHz時鐘來控制編碼器發送40位數據,每個時鐘沿發送一位,正好滿足1553B總線1Mb/s的速率要求[5]。
1.3解碼器設計解碼器主要完成消息字的解碼,并將其串并轉換后輸出,其工作過程為:(1)檢測到總線上有效電平,解碼器開始工作;(2)同步頭解碼,檢測到指令字和狀態字同步頭用“011”表示,檢測到數據字同步頭用“100”表示;(3)16位數據位和1位奇偶校驗位解碼;(4)將解碼后的消息字(20位)并行輸出。同步頭和數據位檢測示意如圖3所示。由1553B協議可知,同步頭包含三個位時,在1.5個位時處有跳變。如圖3(a)所示,同步頭到來后,解碼器連續采集48個數,理論上,采用16MHz時鐘,如果檢測到24個‘0’和24個‘1’,則表示收到有效同步頭,但考慮到信號上升時間及下降時間等因素,實際若檢測到22個或者23個‘0’和‘1’,就可以判定同步頭有效,進行下一步數據的接收。數據位包含一個位時,在0.5個位時處有跳變。如圖3(b)所示,在每個數據中間部位,若前一時鐘采樣到‘0’,后一時鐘采樣到‘1’,則表示當前數據位為‘0’,反之則是‘1’。另外,如果采到的數沒有跳變,為全‘0’或者全‘1’,則產生錯誤標志,通知協議處理邏輯或子系統進行相應的錯誤處理。
2協議處理模塊設計
2.1協議處理模塊響應流程協議處理模塊實現BC,RT,MT三種總線終端的協議處理,在FPGA模塊設計之前,根據1553B協議對協議處理模塊三種工作模式下的響應流程分別進行分析設計。
2.1.1BC模式[6]BC(總線控制器)是1553B總線的核心,總線上任何類型的數據交換都由它發起。BC模式下接口響應流程設計如圖4所示。MIL⁃STD⁃1553B協議規定的總線指令可分發送指令、接收指令和方式指令三種,共能實現四種類型的功能:RT到BC的數據傳輸、BC到RT的數據傳輸、RT到RT的數據傳輸和總線管理。根據圖4,BC模式下接口主要工作過程為:(1)根據外部系統需求發送相應命令字,發起總線傳輸;(2)根據指令類型的不同,進入不同響應流程,主要包括數據字發送、數據字接收和狀態字接收等;(3)消息完成后進行消息結束處理,主要包括消息結束標志的產生,差錯處理,以及根據收到的RT狀態字判斷總線終端狀態等。需要注意的是,BC如果在規定的時間內沒有收到RT狀態回復,則需重新發送命令字進行重試(Retry)。
2.1.2RT模式[7]RT(遠程終端)是1553B總線上的指令/響應型終端,它響應BC發送的指令,按要求接收或發送數據,在規定時間內回送狀態字,并服從BC的總線管理。RT模式下接口響應流程設計如圖5所示。根據圖5,RT模式下接口主要工作過程為:(1)收到命令字后進行指令分析,根據指令類型進入相應的響應流程;(2)按照流程進行數據字接收、發送,并回復狀態字;(3)消息完成后進行消息結束處理,主要包括消息結束標志的產生,差錯處理,以及特殊方式指令下方式標志的產生等。
2.1.3MT模式MT(總線監控器)是總線上的監聽單元,它監控總線上的信息傳輸,完成對總線的上原始數據的記錄,但它本身不參與總線的通信。MT模式接口的功能較為簡單,主要進行指令字、狀態字和數據字的接收并將其寫入相應緩存中,方便以后提取分析,可通過BC模式或RT模式下接口相應的子模塊實現。
2.2協議處理模塊FPGA總體設計根據以上三種模式下接口響應流程的分析,對協議處理模塊各FPGA子功能模塊進行了劃分[8],總體設計框圖如圖6所示。協議處理模塊主要由數據接收部分、數據發送部分和數據緩存部分組成,此外還包括超時檢測、地址譯碼及讀寫控制、中斷管理等輔助部分。由于三種模式下某些功能重復,為了提高FPGA資源利用率,設計時充分考慮了相應模塊的模式復用,整個協議處理邏輯可在外部模式選擇信號的控制下工作在BC,RT和MT模式。16MHz的全局時鐘通過時鐘管理模塊為各FPGA功能模塊提供工作時鐘,各模塊間通過一定的握手信號互聯,保證協議處理邏輯有序工作。整個協議處理模塊的基本工作原理如下:按照1553B協議規范,通過接收器接收總線上的數據并存入緩存,通過發送器取出緩存中的數據并發送到總線上,同時不斷以中斷和握手信號與外部系統進行通信,通知外部系統向緩存中寫入待發送數據或從緩存中讀取已接收數據,并共同完成差錯處理和協議邏輯的管理[9]。
3設計仿真與驗證
根據設計方案,編寫了重要模塊的FPGA代碼,模擬實現BC功能和RT功能,采用Active⁃HDL軟件仿真,其中BC向RT的數據傳輸仿真結果如圖7所示。仿真通過后,在Virtex⁃5FPGA[10]平臺上對設計進行了驗證,如圖8所示。將BC功能模塊和RT功能模塊的代碼經ISE綜合、布局布線后分別下載到兩塊開發板中實現,開發板通過串口與PC機通信。PC機將指令和數據寫入FPGA相應寄存器中,BC和RT在PC機指令的控制下進行1553B協議通信。驗證過程中通過示波器查看模擬總線的波形,并通過ChipScope觀察和比對協議收發數據。同時,為提高接口性能,用光纖代替傳統電纜傳輸介質,采用8B/10B編解碼代替曼徹斯特編解碼,并利用FP⁃GA內嵌RocketIO內核,進行了傳統1553協議數據的光纖傳輸[11],傳輸過程數據比對ChipScope采樣如圖10所示。驗證結果表明,BC和RT功能模塊能夠正常按照1553B協議進行數據的發送和接收,完成基本1553B協議的處理,實現1553B協議數據的1Mb/s電纜傳輸和3Gb/s以上光纖傳輸,數據比對無誤,說明該接口設計方案實際可行,具備開發應用價值,同時也為光纖1553接口的設計提供了一定參考價值。
NDK通過編程接口與嵌入式操作系統SYS/BIOS以及底層硬件相互隔離。對于NDK而言,SYS/BIOS被抽象成一個操作系統適應層(OSAdaptationLayer),底層硬件被抽象成一個硬件適應層(HardwareAdaptationLay-er),它們的函數庫OS.LIB、HAL.LIB成為了NDK與SYS/BIOS以及底層硬件的接口。圖4為基于NDK與SYS/BIOS的通信接口軟件架構圖。由圖4可以看出,NDK主要包含NETTOOL.LIB、STACK.LIB、OS.LIB、HAL.LIB、NETCTRL.LIB五個部分。(1)NETTOOL.LIB提供網絡服務,包含NDK提供的基于網絡服務的所有套接字以及一些用于網絡應用開發的附加工具。(2)STACK.LIB是主要的TCP/IP協議棧,提供了頂層(套接字層)至底層(以太網和PPP層)的所有功能。(3)OS.LIB提供與SYS/BIOS操作系統的接口。(4)HAL.LIB提供與底層硬件的接口。(5)NETCTRL.LIB控制TCP/IP協議棧與外界的交互,管理所有網絡事件、協調操作系統與硬件驅動,主要包括:①初始化TCP/IP協議棧和底層設備驅動;②啟動和維護系統配置(通過配置服務提供者的回調函數);③連接底層設備驅動和安排驅動事件呼叫TCP/IP協議棧;④卸載系統配置和清除底層驅動。對于基于NDK與SYS/BIOS的通信接口的軟件架構,其實現主要分為三部分工作:(1)編制底層驅動程序。底層硬件驅動負責向TCP/IP協議棧提供具體的操作接口,用以控制以太網器件的配置和運行,主要包括:初始化驅動環境,包括器件復位、中斷使能、存儲區數據訪問優先級設定、器件枚舉和配置等;以太網數據包的接收和發送;監測底層網絡器件狀態,將事件信息反饋給協議棧;關閉驅動環境,并收回占用的系統資源。(2)在SYS/BIOS操作系統平臺上配置和運行NDK的TCP/IP協議棧。CCS5.3提供了配置工具XGCONF來實現圖形化界面配置NDK,如圖5所示,傳輸層、網絡層、數據鏈路層分別選用TCP、IP、EMAC協議,并對其作相關必要的配置,主要包括發送/接收窗口大小、IP地址、生存時間等內容的配置。(3)開發用戶定制的網絡應用程序。本方案中主要是完成接收上位機控制信息和發送結果信息這些操作,采用流式套接字(Socket)來實現。Socket是應用層與TCP/IP協議簇通信的中間軟件抽象層,它是一組接口,把復雜的TCP/IP協議簇隱藏在其后面。對于用戶來說,一組簡單的Socket接口就是全部通信過程,讓Socket去組織數據,以符合指定的協議。
本設計中,選取DSP作為服務器,上位機作為客戶端。對于DSP端,先初始化一個監聽Socket,然后與端口綁定(bind),并對端口進行監聽(listen),再調用accept阻塞,等待PC端連接。對于PC端,先初始化一個Sock-et,然后請求連接DSP端(connect),若此時DSP端正處于等待PC端連接狀態,則DSP端接受此連接請求,于是,PC端與DSP端就成功建立起了連接。PC端發送數據請求,DSP端接收請求并處理請求,再把回應數據發送給PC端,PC端讀取數據,最后關閉連接,一次交互結束。DSP與上位機進行Socket通信的具體過程如圖6所示。
2功能測試
為了測試本文設計的千兆以太網接口的可行性,PC端采用VC++的MFC來設計測試程序,測試程序主要實現對單通道正弦信號的采集、處理以及顯示等操作,測試界面如圖7所示。根據具體的設計需求,測試程序分為數據發送/接收和數據處理/顯示這兩個部分。其中,數據發送/接收部分通過Socket編程完成與DSP的收發數據包等通信過程,數據處理/顯示部分不僅能夠支持用戶對服務器端參數和控制參數的可配置,而且通過顯示接收到的正弦信號時域波形與頻譜圖,實現對PC端與DSP端通信的直觀體驗,同時更增加了本接口程序的可移植性與可擴展性。通過測試可以發現,正弦信號的時域波形圖與頻譜圖較為流暢,且穩定性較高,能夠支持長時間穩定可靠傳輸及顯示。
2軟件設計
數據處理接口模塊的軟件主要由硬件初始化、自測試程序、周期數據收發和命令響應四大功能組成。其中周期數據的收發包含消息層和數據層兩個層次。消息層負責命令的辨識和數據的組織搬運,數據層負責協議的執行和發送接收等底層任務。數據層基本數據幀的格式見圖4所示。這里的同步字、數據長度、校驗方式由主機在初始化時確定。其中校驗方式可選擇兩種,若采用和校驗,則檢驗位占用1字節;若使用CRC校驗,校驗位占2字節。在周期數據收發的數據層中,RS422鏈路分為測控鏈路和任務鏈路兩部分。測控鏈路用于檢測設備的連通性和硬件的正確性,任務鏈路用于任務系統之間的通信。因此,將用于測控通信的鏈路設計為無鏈接協議鏈路,將用于任務通信的鏈路設計為有鏈接協議鏈路。有鏈接協議的任務鏈路的狀態轉移圖見圖5所示。任務鏈路的工作原理是:上電后首先進行通信測試,主端首先發送LTST,若從端回復ALTST為正常,測試完成后,轉入空閑工作狀態;空閑狀態時主從定期進行握手操作,當主機存在發送命令時,轉入消息發送狀態,當從端發來數據幀前導碼LHDR時主端轉入消息接收狀態;消息發送完成后會進行發送檢查,如果從接收無誤會發來ACK握手信號,當出現超時或從發來NACK信號時進行重新發送狀態,重試超過門限進入通信測試狀態;消息接收狀態時若消息正確則進入空閑狀態,若接收超時或消息錯誤時發送NACK通知主端重新發送,當錯誤次數超門限時進入通信測試狀態。
3低功耗設計
簡易無人機攜帶燃料有限,而實際任務中往往又要求其盡可能長時間的滯空,這就要求各類設備盡可能地以較小的功耗完成較多的功能。因此本文從硬件軟件等不同層面設計來降低模塊的功耗。降低功耗總的來說有關閉無用功能、減少無用操作和合理器件選型三個方法。在不使用DSP內部的AD、eCAN、SCI等資源時,可將對應的資源的時鐘HSPCLK和LSPCLK關閉,同時不使能這些資源,以達到降低功耗的目的。作為降壓型線性電源,TPS74401芯片的耗散功率PD=(VIN-VOUT)×IOUT,即電源的轉換效率取決于輸入輸出電壓差的大小,因此在電源轉換電路的設計上應在滿足電源芯片的最小dropoutvoltage的情況下盡量減小LDO器件輸入輸出電壓差,可提高轉換效率減少發熱功耗,本文中1.8V電源由最接近1.8V電壓的3.3V電源轉換而來。為保持較好的信號完整性,模塊上的印制板走線阻抗均按照單端50Ω差分100Ω控制。在RS422的發送端和接收端進行阻抗匹配以優化信號質量。在發送端使用33Ω串聯匹配方式,接收端采用120Ω并聯匹配方式,由于正常工作時差分電平約±5V,為降低直流功耗在并聯匹配電阻處串接一10pF電容,這樣既滿足瞬態的信號完整性要求,也可在穩態時達到隔離直流,減小匹配電阻上直流功耗的目的。詳見圖6所示。在軟件設計方面,采用定時查詢和中斷接收相結合的方式,減少DSP對外設的多余操作,避免不必要的輪詢操作所產生的功率消耗。本文介紹的串行數據接口板在今后的改進設計中,可以注意合理的器件選型,以達到降低功耗的目的。例如:現設計中1.8V電源轉換效率為54%,今后可結合實際電流消耗狀況選用合適的開關電源代替線性電源[4],并使開關電源工作在中等或較重負載狀態,可提高電源效率至80%左右;現有設計中CPLD動態功耗約為0.7W,由于該模塊中邏輯占用資源并不多,因此后期可考慮用更小功耗的中小規模可編程邏輯器件替換。目前現有設計中未考慮模塊的睡眠喚醒功能,今后可結合主機實際的需求,添加相應功能的電路,以降低待機功耗。
1引言
在當今的各種實時自動控制和智能化儀器儀表中,人機交互是不可缺少的一部分。一般而言,人機交互是由系統配置的外部設備來完成,但其實現方式有兩種:一種是由MCU力口驅動芯片實現,如鍵盤顯示控制芯片SK5279A,串行數據傳輸數碼顯示驅動芯片MAX7219等等,這時顯然MCU沒有LCD的驅動功能。另一種就是MCU本身具有驅動功能,它通過數據總線與控制信號直接采用存儲器訪問形式或I/O設備訪問形式控制鍵盤和LCD實現人機對話。這里的MCU主要有世界各大單片機生產廠商開發的各種單片機,其中TI公司的MSP430系列因其許多獨特的特性引起許多研究人員的特別關注,在國內外的發展應用正逐步走向成熟。
2LCD簡介
LCD(LiquidCrystalDisplay),即液晶顯示器。液晶顯示是通過環境光來顯示信息的,它本身并不發光,因而功耗很低,只要求液晶周圍有足夠的光強。LCD是人與機器溝通的重要界面,早期以顯像管(CRT/CathodeRayTube)顯示器為主,但隨著科技不斷進步,各種顯示技術如雨后春筍般誕生。LCD由于具有輕薄短小、低耗電量、無輻射危險、平面直角顯示以
及影像穩定不閃爍等優勢,逐漸占據顯示的主流地位。
LCD的類型,根據其分類方式的不同而不同。如根據LCD顯示內容的不同可以分為段式LCD和點陣LCD。根據LCD驅動方式的不同可以分為靜態驅動和多路驅動。
3MSP430F44X簡介
MSP430F44X系列是TI公司最新推出的具有超低功耗特性的Flash型16位RISC指令集單片機[2]。該系列單片機性價比相當高,在系統設計、開發調試及實際應用上都表現出較明顯的優勢。它主要應用在各種要求極低功率消耗的場合,特別適合用于智能測量儀器、各種醫療器械、智能化家用電器和電池供電便攜設備產品之中。
3.1系統結構
MSP430F44X的系統結構,主要包括:CPU、程序存儲器(ROM)、數據存儲器(RAM)、FLL+時鐘系統(片內DCO+晶體振蕩器)、看門狗定時器/通用目的定時器(WatchDog)、ADCl2(12位A/D)、比較器A(精確的模擬比較器,常用于斜邊(Slope)A/D轉換)、復位電壓控制/電源電壓管理、基本定時器(BasicTimerl)、定時器(Timer-a和Timer-B)、LCD控制器/比較器(多達160段)、硬件乘法器、I/O口和串行口[4]。系列中各種具體的型號稍有差別。在本次設計中,具體選擇MSP430F449作為人機接口電路的設計具有許多獨到的優勢。這一點,讀者可以根據TI公司相關的數據手冊進行比較。
3.2片內外模塊特性
MSP430F44X具有豐富的片內模塊,其明顯的特點是:具有48條I/0口線的6個并行口P1-P6,其中P1、p2具有中斷能力,同時具有2個可用于UART/SPI模式選擇的串行口(USART0和USARTl);內含12位的A/D轉換器ADCl2,快速執行8×8、8×16、16×16乘法操作并立即得到結果的硬件乘法器;多達160段的LCD控制器/比較器,可以實現多種方式的驅動顯示;可以實現UART、PWM、斜坡ADC的16位Timer-A和16位Timer-B;非常靈活的時鐘系統,既可用32768Hz的鐘表晶振產生低頻時鐘,也可以用450kHz-8MHz的晶體產生高頻時鐘,同時還可以使用外部時鐘源或者用不同控制頻率的DCO;多達幾十kB的Flash空間,這樣數據既可以保存在片內的Flash信息存儲器,也可保存在程序的Hash中的剩余空間。
4接口電路設計
4.1接口電路簡圖及說明
典型應用電路示意圖。在該圖中,LCD類型和鍵盤種類及數目的選擇、下拉電阻的數值大小都必須認真考慮,硬件設計要滿足一定的工作時序關系,復位時預留緩沖時間和懸空部分引腳,晶振的選擇要在適當的數值,必須保證交流驅動的頻率在30Hz-1000Hz范圍內,其具體的情況請詳細參考TI公司的相關資料[3]。
4.2段型液晶顯示屏EDS820A簡介
一般而言,LCD分為筆段型和點陣字符型及點陣圖形型。筆段型主要是顯示數字,常用于計數、計量和計時;點陣字符型用于顯示數字和西文字符;點陣圖形型用于顯示圖形及字符。本設計中用到的EDS820A就是由西安新敏電子科技有限公司生產的筆段型LCD。是該顯示屏的各個引腳的邏輯功能表。
顯而易見,該產品EDS820A是5位的液晶顯示屏,它只有4個DP,用于顯示小數點;COM端也只有一個,所以該LCD與MSP430F449的管腳連接應該引起足夠重視.
5軟件設計
硬件連接電路圖為例,編寫了鍵盤控制及顯示程序,程序在IAREmbeddedWorkbench編譯通過。全部主程序包括詳細的發射和接收子程序,及初始化和等待鍵盤輸入轉換、顯示等等,值得注意的是發射與接收的控制要適當。
該程序是用匯編編寫的。程序實現的是等待按鍵輸入,讀取鍵值,最后進行鍵值處理和顯示的功能。
檢測是否有鍵按下是通過KEY是否有高電平信號。平時,KEY為低電平,當有鍵按下時為高電平,它發送一個脈沖給單片機MSP430F449,當單片機檢測到該信號時,判斷按鍵的功能,從而進行相應的處理。
6人機接口電路在體內電刺激器中的應用
醫學上,在進行疾病控制時,通常可以通過電極以一定波形(如方波、正弦波等)、頻率、幅度、占空比等電信號對神經或肌肉進行刺激,以使其支配相應的功能或肌肉產生收縮/舒張動作,從而有利于癥狀的減輕。由于不同部位的神經或肌肉對電刺激發生的敏感水平不同,不同強弱和不同性質的電信號所產生的刺激效果是不一樣的。我們研制的體內電刺激器,可以產生手術時所需要的具有不同的頻率、幅度、占空比的不同波形信號。該儀器幅度、占空比準確,頻率穩定,各參數均可以精確的調節。而且,由于使用了LCD顯示,它與單片機的連接簡單。LCD具有質量輕、體積小、電壓低、功耗小、顯示內容豐富等優點,其人機界面相當友好。但人機接口電路設計的優劣直接影響到整臺儀器的使用效果。
2個性化的作業
為了讓每個學生都有獨一無二的作業,將題目和學生的身份信息進行了聯系.MATLAB最重要的功能就是對矩陣的操作,在實際學習過程中,讓學生將向量和矩陣分開看待的.對于向量的操作,讓學生對自己的學號進行操作,并將自己的學號做成各種各樣的條形碼.通過對條形碼的學習,讓學生明白了編解碼技術、抗噪聲技術.當學生看著自己的學號生成的條形碼時,他們覺得非常新奇,對MATLAB編程的學習熱情得到極大地提高.對于矩陣的學習,主要圍繞學生的照片展開.要求學生必須用自己的照片來進行處理.這里存在兩個問題:(1)有的學生從網上下載了小動物和風景畫之類的圖像進行處理,遇到這樣的問題,對學生進行批評教育,并降低該次作業的成績;(2)學生本人的照片大多是用手機拍攝的,因此是彩色圖像,一般為jpg格式,需要將彩色圖像先轉換為灰度圖像,在講到三維陣列的時候,再學習彩色圖形的顯示和處理.為了便于說明作業的實際情況,舉一實例.例如:學習圖形用戶接口的時候,要求學生設計一個獨特的界面.界面的大致輪廓見圖1.給出作業的要求如下:(1)設計中的照片務必為本人“頭像”,不可以為合影、風景照等;(2)設計報告要求將實現步驟寫清楚;(3)報告中要求有程序執行結果截圖,截圖一定要全面、完整;(4)學號要求一定輸入自己的學號;(5)設計完成項目不局限于上頁格式,可自由發揮;(6)報告后面要有附錄,附錄為本設計的代碼,字號為小五.本次作業不僅要求學生能夠正確設計圖1所示的界面,還能夠將自己的學號拼成平行四邊形或矩形輸出,并能夠求出學號各位數字的總和,還能夠上下和左右翻轉設計者的照片.所有結果要求在該接口界面上顯示.例如:在文本框中輸入“20115044122”,點按“平行四邊形格式”,并單擊“左右翻轉”,得到的結果見圖2.在圖2的界面中再次單擊“左右翻轉”,照片翻轉結果見圖1.本次作業不僅使學生學會了利用MATALB提供的Guide工具進行圖形用戶接口界面設計,而且學會了將照片導入MATLAB的方法,以及對于三維陣列的操作方法,更能夠鞏固已經掌握的循環結構程序設計方法.有的學生在本次作業的基礎上,進行了進一步的學習和探索,做出了更多更好的設計.
CAN通訊協議描述了在設備之間信息如何傳遞。它對層的定義與開放系統互連模型(OSI)一致。每一層與另一設備上相同的那一層通訊。實際的通訊是發生在每一設備上相鄰的兩層,而設備只通過模型物理層的物理介質互連。CAN的結構定義了模型的最下面的兩層:數據鏈路層和物理層。應用層通過不同的新型協議層(專門用于特殊的工業領域加上由個別CAN用戶定義的任何合適的方案)和物理層連接。物理層和數據鏈路層對于設計者來說是透明的,并包含在所有執行CAN協議的部件中。
實際中,許多設備是RS-232接口,為了實現CAN總線數據和RS-232接口設備數據的傳輸,設計完成了CAN總線與RS-232轉換接口電路設計。
1.CAN總線協議分析
1.1CAN總線主要特點
CAN總線是一種多主式的串行通信總線,具有極高的實時性和可靠行,最高通信速率可以達到1Mbit/s,是一種十分優秀的現場工業總線。CAN總線具有如下特點:
結構簡單,只有2根線與外部相連,且內部集成錯誤探測和管理模塊。
通信方式靈活。可以多主方式工作,網絡上的其他節點發送信息,而不分主從。
可以點對點、點對多點或者全局廣播方式發送和接收數據。
網絡上的節點信息可分成不同的優先級,以滿足不同的實時要求。
CAN總線通信格式采用短幀格式,每幀字節最多為8個,可滿足通常工業領域中控制命令、工作狀態及測試數據的一般要求。同時,8字節也不會占用總線時間過長,從而保證了通信的實時性。
采用非破壞性總線仲裁技術。當兩個節點同時向總線上發送數據時,優先級低的節點主動停止數據發送,而優先級高的節點可不受影響地繼續傳送數據。這大大的節省了總線仲裁沖突的時間,雜網絡負載很重的情況下也不會出現網絡癱瘓。
直接通信距離最大可達10Km(速率5Kbit/s以下),最高通信速率可達1Mbit/s(此時距離最長為40Km),節點數可達110個,通信介質可以是雙絞線、同軸電纜或光導纖維。
CAN總線通信接口中集成了CAN協議的物理層和數據鏈路層功能,可完成對通信數據的成幀處理,包括位填充、數據塊編碼、循環冗余檢測、優先級判別等多項工作。
CAN總線采用CRC進行數據檢測并可提供相應的錯誤處理功能,保證了數據通信的可靠性。
1.2CAN總線協議
CAN總線協議主要描述設備之間的信息傳遞方式,從結構上可分成3個層次,分別對應OSI網絡模型的最低兩層數據鏈路層和物理層。CAN總線協議層次結構由高到低如表1-1所示。
表1-1CAN總線協議層次結構
協議層
對應OSI模型
說明
LLC
數據鏈路層
邏輯鏈路控制子層,用于為鏈路中的數據傳輸提供上層控制手段
MAC
媒體訪問控制子層,用于控制幀結構、仲裁、錯誤界定等數據傳輸的具體實現
物理層
物理層
物理層的作用是在不同節點之間根據所有的電氣屬性進行位的實際傳輸
LLC層和MAC層也可以看作是CAN總線數據鏈路層的兩個子層。其中LLC層接收MAC層傳遞的報文,主要完成報文濾波、過載通知以及恢復管理等工作。而MAC層則為數據報文的傳輸進行具體的控制,包括幀結構控制、總線仲裁、錯誤檢測、出錯界定、報文收發控制等工作。
物理層定義了信號是如何實際傳輸的,因此涉及到位時間、位編碼、同步的解釋,CAN總線協議并未對物理層部分進行具體的規定。
1.3CAN總線報文傳輸結構
報文傳輸由以下4個不同的幀類型所表示
1.數據幀:數據幀攜帶數據從發送器至接收器。
數據幀由7個不同的位場組成:幀起始、仲裁場、控制場、數據場、CRC場、應答場、幀結尾。數據場的長度可以為0。數據幀(或遠程幀)通過幀間空間與前述的各幀分開。
2.遠程幀:總線單元發出遠程幀,請求發送具有同一識別符的數據幀。
遠程幀由6個不同的位場組成:幀起始、仲裁場、控制場、CRC場、應答場、幀末尾。通過發送遠程幀,作為某數據接收器的站通過其資源節點對不同的數據傳送進行初始化設置。
3.錯誤幀:任何單元檢測到總線錯誤就發出錯誤幀。
錯誤幀由兩個不同的場組成。第一個場用作為不同站提供的錯誤標志(ERRORFLAG)的疊加。第二個場是錯誤界定符。
為了能正確地終止錯誤幀,"錯誤被動"的節點要求總線至少有長度為3個位時間的總線空閑(如果"錯誤被動"的接收器有本地錯誤的話)。因此,總線的載荷不應為100%。有兩種形式的錯誤標志,主動錯誤標志(Activeerrorflag)和被動錯誤標志(Passiveerrorflag)。
4.過載幀:過載幀用以在先行的和后續的數據幀(或遠程幀)之間提供一附加的延時。
過載幀包括兩個位場:過載標志和過載界定符。
有兩種過載條件都會導致過載標志的傳送:
(1)接收器的內部條件(此接收器對于下一數據幀或遠程幀需要有一延時)。
(2)間歇場期間檢測到一"顯性"位。
由過載條件1而引發的過載幀只允許起始于所期望的間歇場的第一個位時間開始。而由過載條件2引發的過載幀應起始于所檢測到"顯性"位之后的位。
1.4CAN總線錯誤處理
1.4.1錯誤檢測
有以下5種不同的錯誤類型(這5種錯誤不會相互排斥)
1.位錯誤(BitError)
單元在發送位的同時也對總線進行監視。如果所發送的位值與所監視的位值不相合,則在此位時間里檢測到一個位錯誤。但是在仲裁場(ARBITRATIONFIELD)的填充位流期間或應答間隙(ACKSLOT)發送一"隱性"位的情況是例外的。此時,當監視到一"顯性"位時,不會發出位錯誤。當發送器發送一個被動錯誤標志但檢測到"顯性"位時,也不視為位錯誤。
2.填充錯誤(StruffError)
如果在使用位填充法進行編碼的信息中,出現了第6個連續相同的位電平時,將檢測到一個填充錯誤。
3.CRC錯誤(CRCError)
CRC序列包括發送器的CRC計算結果。接收器計算CRC的方法與發送器相同。如果計算結果與接收到CRC序列的結果不相符,則檢測到一個CRC錯誤。
4.形式錯誤(FormError)
當一個固定形式的位場含有1個或多個非法位,則檢測到一個形式錯誤。(備注:接收器的幀末尾最后一位期間的顯性位不被當作幀錯誤)
5.應答錯誤(AcknowledgmentError)
只要在應答間隙(ACKSLOT)期間所監視的位不為"顯性",則發送器會檢測到一個應答錯誤。
1.4.2錯誤標定
檢測到錯誤條件的站通過發送錯誤標志指示錯誤。對于"錯誤主動"的節點,錯誤信息為"主動錯誤標志",對于"錯誤被動"的節點,錯誤信息為"被動錯誤標志"。站檢測到無論是位錯誤、填充錯誤、形式錯誤,還是應答錯誤,這個站會在下一位時發出錯誤標志信息。只要檢測到的錯誤的條件是CRC錯誤,錯誤標志的發送開始于ACK界定符之后的位(其他的錯誤條件除外)。
2.CAN控制器SJA1000分析
2.1CAN節點結構與SJA1000操作模式
SJA1000獨立的CAN控制器有2個不同的操作模式:
BasicCAN模式(和PCA82C200兼容);
PeliCAN模式
BasicCAN模式是上電后默認的操作模式。因此用PCA82C200開發的已有硬件和軟件可以直接在SJA1000上使用,而不用作任何修改。
PeliCAN模式是新的操作模式,它能夠處理所有CAN2.0B規范的幀類型。而且它還提供一些增強功能,例如,SJA1000支持一些錯誤分析功能,支持系統診斷、系統維護和系統優化,而且這個模式里也加入了對一般CPU的支持和系統自身測試的功能。使SJA1000能應用于更寬的領域。
本設計采用PeliCAN模式,因此只給出PeliCAN模式增強功能。如表2-1所示。
表2-1PeliCAN模式的增強功能
CAN2.0B(active)
CAN2.0Bactive支持帶有29位標識符的網絡擴展應用
發送緩沖器
有11位或29位標識符的報文的單報文發送緩沖器
增強的驗收濾波器
兩個驗收濾波器模式支持11位和29位標識符的濾波
可讀的錯誤計數器
支持錯誤分析在原型階段和在正常操作期間可用于:診斷、系統維護、系統優化
可編程的出錯警告界限
錯誤代碼捕捉寄存器
出錯中斷
仲裁丟失捕捉中斷
支持系統優化包括報文延遲時間的分析
單次發送
使軟件命令最小化和允許快速重載發送緩沖器
僅聽模式
SJA1000能夠作為一個認可的CAN監控器操作,可以分析CAN總線通信或進行自動位速率檢測
自測試模式
支持全部CAN節點的功能自測試或在一個系統內的自接收
通常,每個CAN模塊能夠被分成不同的功能塊,如圖2-1所示。
CAN控制器執行在CAN規范里規定的完整CAN協議。它通常用于報文緩沖和驗收濾波。
通用CAN收發器實現從CAN控制器到CAN總線物理層的電氣連接。
而所有這些CAN功能都由一個模塊控制器控制,它負責執行應用層的功能。
元器件清單
表3-3CAN總線與RS-2232接口電路設計元氣件清單
序號
元件名稱
數量(個)
單價(元)
總價(元)
1
AT89C51
1
7.50
7.50
2
SJA1000
1
25.00
25.00
3
HM6116
1
1.00
1.00
4
MAX232
1
5.00
5.00
5
74HC373
1
1.00
1.00
6
PCA82C250
1
6.50
6.50
7
X25045
1
1.00
1.00
8
TLP113
2
3.00
6.00
合計
53.00
結論
本設計完成了CAN總線與RS-232轉換接口設計。由于CAN總線與RS-232接口數據通信速率以及通信幀格式都不同,本設計最大優點是解決了這兩點不同,實現了數據在CAN總線與RS-232接口之間的傳輸。且設計中由于使用了CAN總線進行數據傳輸這就使得通信方式多主性。網絡上任意節點可以任意時刻主動地向網絡上其他節點發送信息而不分主從。可以點對點,點對多點或全局廣播方式發送和接收數據。
由于CAN總線標準沒有定義應用層,數據鏈路層提供與信息內容相應的尋址能力,消息的內容完全由應用解釋。且CAN總線的每個數據幀最多只能承載8個字節的數據,因而只適應提供短的變量服務。許多功能還需要擴展。
綜上所述,通過此次設計,我們感受到CAN總線帶來的各種便利。而且,由于CAN總線具有結構簡單、實時性極高、可靠性強且本身具有強大的糾錯能力。使得它在當今自動控制領域中的應用極為廣泛。由于CAN協議參考OSI開放系統互聯模型,可由用戶定義應用層協議,通過相關的CAN轉接設備,將CAN與計算機相連,利用CAN232B轉換器組建一個CAN控制網絡,能夠很方便的實現RS-232多點組網、遠程通訊,并且,不需要更改原有RS-232通訊軟件,用戶可直接嵌入原有的應用領域,使系統設計達到更先進的水平。
摘要............................................................................................................Ι
ABSTRACT..................................................................................................................................ΙΙ
引言1
1.CAN總線協議分析2
1.1CAN總線主要特點2
1.2CAN總線協議2
1.3CAN總線報文傳輸結構3
1.4CAN總線錯誤處理3
1.4.1錯誤檢測3
1.4.2錯誤標定4
2.CAN控制器SJA1000分析5
2.1CAN節點結構與SJA1000操作模式5
2.2SJA1000內部結構及其功能分析6
3.CAN總線與RS-232轉換接口電路設計11
3.1CAN總線與RS-232轉換接口電路總體設計11
3.2主控制模塊電路設計12
3.2.1AT89C51與6116電路設計13
3.2.2看門狗電路設計14
3.3AT89C51與RS-232轉換接口電路設計16
3.3.1RS-232-C標準分析16
3.3.2RS-232與AT89C51接口電路設計18
3.4SJA1000與AT89C51接口電路設計19
3.4.1SJA1000與AT89C51接口電路設計19
3.4.2物理層接口電路設計21
3.5元器件清單22
引言
USB接口(UniversalSerialBus)是一種通用的高速串行接口。它最主要的特點是它的高速傳輸特性。USB1.1理論速度極限可以達到12Mb/s,USB2.0可達到480Mb/s。這樣,它可以很好解決大數據量的數據在嵌入式系統與PC機之間的互傳問題;同時,它支持熱插拔,并且最多同時支持127個外設,非常適合嵌入式系統的應用。
本次設計是在一個已有的DSP圖像采集嵌入式系統的基礎上,為它配接上一個USB1.1的接口,以達到DSP圖像采集系統高速地將圖像數據回傳到PC機中的目的。設計的要求主要有:
①在原有平臺提供的接口基礎上,加入一個低成本、高速度的USB接口;
②通過USB接口,實現PC機對DSP圖像采集系統的操作與控制;
③實現圖像數據在DSP攝像系統與PC機之間高速的雙向傳輸。
基于以上幾點可以看出,本方案最主要的特點是成本低廉且傳輸速度高。
1硬件方案選擇與設計
1.1方案選擇
對于基于DSP平臺的USB接口設計,經過綜合考慮了幾種方案之后決定,采用一個不帶MCU內核的USB接口芯片PDIUSBD12(成本非常低,一片PDIUSBD12的價格僅為20元),再加上簡單的電路和時序調整電路。
這種芯片僅僅完成USB底層的數據鏈路級交換,并提供給本地微控制器一個并行的接口,但是它并不完成協議層的工作。協議層的工作需要對微控制器編程,控制USB接口芯片來實現USB協議。所以,開發難度相對來說大一些,要做的編程工作也多一點。但是這套方案的成本非常低,而且由于直接用DSP作為微控制器,沒有原單片機的瓶頸限制,所以可以實現很高的數據傳輸速率。該系統的原理框圖如圖1所示。
由于PDIUSBD12的并行接口時序較慢,只能達到2MB/s。這個速度相對于DSP來說比較低,而且有些地方不是簡單地在程序中加入延時就可以調整,所以需要一個時序調整電路來完成它們之間的配合。
圖2TMS320C2XX寫時序
1.2PDIUSBD12芯片
PDIUSBD12芯片是由Philips公司推出的一種USB1.1接口芯片。它可以工作在5V或者3.3V的工作電壓下;具有8位數據總線,且有完全自治的DMA傳輸操作。它還具有可控制的軟件連接(SoftConnect)功能,可以保證在微控制器可靠完成初始化之后再連接上USB總線。另外,它還有一個LED驅動腳,可以外接LED來監測USB的枚舉過程和數據傳輸過程。當USB接口枚舉完成,并且成功配置以后,LED將會一直點亮;而在枚舉過程以及USB數據通信過程中,LED只是有節奏地閃爍。
PDIUSBD12只占用微控制器的兩個地址資源。也就是說,它只有一根地址線。其中一個地址用來向芯片中寫命令,另外一個地址用來向燕片中寫數據或者從芯片中讀取數據。
PDIUSBD12一共有三組端點:端點0完成控制傳輸;端點1可以配置成中斷傳輸;端點2是主要的數據傳輸端點。它有64B的緩沖區,如果加上它的雙緩沖機制,就有128B的緩沖區;它可以配置成批量傳輸模式,或者同步傳輸模式。
總的來說,PDIUSBD12是一款性能優異,價格相對軟低的USB接口芯片。
1.3時序芯片
為了降低成本、簡化電路,本方案不使用DMA傳輸方式,而以TI公司的TMS320C2XX作為微控制器(使用20MHz晶振)。它的并口速度非常高,遠遠高于PDIUSBD12所要求的最高限制2MB/s。此處是硬件設計最關鍵的地方。
經過詳細的時序分析發現,大部分問題可以通過在DSP固件設計的加入延時,或者設置DSP的WSGR寄存器來解決。但是有一個問題,必須在硬件上加以解決。圖2是DSP(TMS320C2XX)的寫時序。
圖3PDIUSBD12寫時序
圖2中,參數th(W-D)是指在WE信號變高(無效)以后,所寫的數據將仍然保持有效的時間。這個值最小為3ns,最大為14ns,所以所寫的數據在WE信號無效以后還會維持有效,大約3~14ns(實際的延時介于這兩個值之間)。
圖3是PDIUSBD12所要求的寫時序。圖中,參量tWDH是與DSP(TMS320C2XX)參量th(W-D)相對應的另外一個參量。這個參量反映了PDIUSBD12要求微控制器在向其中寫數據時,所寫的數據在WR信號無效之后,要繼續保持有效的時間。這個參量最小值為10ns。也就是說,PDIUSBD12要求所寫的數據最少要保持有效10ns(在WR無效之后)。
由此可以看出,DSP(TMS320C2XX)的寫時序不能可靠地保證滿足PDIUSBD12的要求,而且這個問題無法通過軟件加延時的方法來解決,必須通過硬件來處理。經過分析對比,最后決定采用一個很簡單但是后來事實證明非常有效的方法來調整它們之間的時序。那就是在DSP(TMS320C2XX)與PDIUSBD12的總線之間加一個雙向緩沖器-74LS245。這個芯片可以在它們的時序之間引入一個延時。雖然這個延時并不可靠、但是由于DSP(TMS320C2XX)本身會在WR無效后,繼續保持數據有效一段時間(前面已講過),這要僅僅需要將延時適當延長一點就可以了。74LS245所造成的延時典型值為15ns,最小也為8ns。這樣,加上原來DSP寫時序的延時,就可以滿足PDIUSBD12所要求的寫時序了。
另外由于加入74LS245所造成的對其它接口時序的影響,可以通過設置DSP(TMS320C2XX)的WSGR寄存器來消除,所以這個方案是可行的。(事實上,后來制造好的電路也證明了這個方案是完全可行的)
對其余時序上的配合,經過仔細的計算與核對證明,也是完全可行的。在硬件上,哂方案還采用了一片GAL(16V8)來實現對PDIUSBD12芯片的片選,以及實現對它的軟件和手動復位。硬件總體框圖如圖4所示。
2軟件設計
2.1固件設計
由于采用的是不帶MCU內核的USB接口芯片,所以關于USB1.1協議規范的實現都必須靠DSP(TMS320C2XX)控制PDIUSBD12芯片來完成。固件的主要設計任務是:在DSP(TMS320C2XX)的平臺上編寫程序,以完成USB1.1規范所要求的標準請求及用戶根據產品需要自己定義的請求。
為了不影響程序的執行效率,本方案采用中斷方式完成固件的編寫;同時,為了保證程序的模塊化及良好的可移植性,在設計中采用分層結構進行固件的編寫,如圖5所示。
最下層是硬件接口層,完成硬件上PDIUSBD12與DSP(TMS320C2XX)的對接。主要是DSP(TMS320C2XX)向PDIUSBD12中寫入數據或者命令,以及從中讀取數據。
中間層主要有兩個模塊,用來完成PDIUSBD12的命令接口和中斷處理子程序。命令接口是指按照PDIUSBD12的命令格式,完成DSP對它的控制。它的基本命令格式是:DSP先向其中的命令地址寫入某一條命令,接著從它的數據地址寫入或者讀出一系列的數據。中斷處理子程序是判斷中斷的產生源,然后跳轉到相應的處理子程序。這些子程序不做過多的處理,而僅僅是將命令數據讀出然后置標志位,或者是將某些數據送出。
最上層是主循環程序,以及對于USB1.1標準協議請求(這些請求主要是在USB1.1協議規范的第九章中定義的)和用戶自定義請求的處理程序。主循環的主要工作是檢查標志位。如果標志位被置位,則調用處理子程序,判斷是標準請求還是用戶自定義請求,然后調用相應的處理程序加以處理,完成請求。
這樣分層的好處是:主循環程序在檢查標志位以外的時間可以進行其它工作,提高固件的運行效率。
編程過程中,由于涉及了一些嚴格的接口時序配合問題,所以,整個固件的編寫工作全部采用DSP(TMS320C2XX)的匯編語言;用的是CC2000編程開發工具。
2.2PC機軟件的設計
PC機的驅動程序由Philips公司提供。然后,用VC++6.0,通過調用API函數,編寫PC的應用程序。這樣即可實現PC機對DSP(TMS320C2XX)攝像系統的攝像控制以及圖像的傳輸。
主要使用的API函數是DeviceIOControl()、ReadFile()、WriteFile()。其中DeviceIOControl()用于PC(主機)向DSP圖像采集系統發送請求;ReadFile()和WriteFile()分別用于從圖像采集系統中讀出數據以及向圖像采集系統中寫入數據。
在設計過程中必須注意的問題是:由于USB接口是主-從方式的接口,它的一切傳輸過程都必須通過主機向外設發送請求后才可以開始,所以在使用ReadFile()、WriteFile()讀寫數據之前,必須先通過DeviceIOControl()向圖像采集系統發送請求。
智能家庭要求家用電器經網絡(總線)實現互聯、互操,總線協議是其精髓所在。目前,國際上占主導地位的家庭網絡標準有:美國的X10[1]、消費總線(CEBus)[2]、日本的家庭總線(HOMEBUS)[3]、歐洲的安裝總線(EIB)[4]。
消費總線使用五種類型的介質(電力線、無線、紅外、雙絞線和同軸電纜),其中以電力線的應用最為廣泛。消費總線得到IBM、Hownywell、Microsoft、Intellon、Lucent、Philips、Siements等大公司的支持,1992年成為美國電力工業協會的標準(EIA600、EIA721)。1997年,EIA600成為美國ANSI標準;2000年6月,微軟和CEBus委員會共同宣布支持CEBus的簡單控制協議SCP。SCP是未來微中UPNP協議的子集。
1CEBus電力線物理層
鑒于家庭中電力線載波通訊的特殊性,CEBus采用價格低廉、簡單易行的線性調頻(chirp)擴頻調制技術。摒棄了傳統電力線載波通常應用的直接序列擴頻、調頻擴頻、跳時擴頻等設備復雜、價格昂貴的擴頻調制技術。
圖2通用通訊模塊的原理圖
消費總線的物理層有四種碼,分別是:“0”、“1”、“EOF”和“EOP”。均為掃頻信號,正弦信號載波,從203kHz經過19個周期線性地變為400kHz,再經過1個周期變為100kHz,然后在5個周期中變為203kHz,整個過程用時100μs,也就是1個UST(Unitsymbletime,在消費總線中用多少個UST來度量時間)。其波形如圖1所示。
chirps掃頻載波需經過放大耦合到電力線上,放大后的幅度應適中。幅度太低,給接收電路帶來困難;幅度太大,又會對電力線上的設備產生干擾。CEBus的規定如表1[5]所示。
表1不同條件下的載波幅度值
設備工作電壓最小幅值最大幅值負載范圍
~120V2.5Vpp7Vpp10Ω~2kΩ
~240V5Vpp14Vpp39Ω~8.2kΩ
表2不同條件下的設備輸入阻抗值
設備工作電壓設備輸入阻抗(在頻率20kHz~50000kHz)載波幅值
~120V>150Ω6Vpp
~240V>300Ω12Vpp
同時也規定了電器設備對信號的阻抗。如果阻抗很小,就會將信號吸收從而無法傳送國。規定如表2[5]所示。
線性調頻技術實現寬帶低功率密度傳輸,從而大大提高抗干擾性能和傳輸距離。同時,chirps具有很強的自相關性和自同步性。這種自相關決定了所有連接在網絡上的設備可以同時識別從網上任意設備發出的這種特殊波形。
2通訊模塊的設計
根據P89C51RD2和P300的芯片手冊[6][7],設計的通用通訊模塊的原理圖如圖2所示。P89C51RD2和P300之間采用SPI接口通訊,用模擬的I2C總線和串行EEPROM通訊。這樣,中斷口、串口和有足夠的I/O口可以用于實際設備的設計。
3通訊模塊電力線接口電路的設計
從P300輸出的信號幅度小、驅動能力弱而且還有高次諧波,因此必須經過濾波和放大,然后才能通過耦合電路將信號調制到電力線上。耦合電路將高壓和低壓隔離開,防止高壓擊穿通訊電路。另一方面,從電力線來的載波信號又要由P300接收,而電力線上的干擾很大也很不確定,所以需要一個帶通濾波器,通過100kHz~400kHz之間的信號,再送到P300的接收端。電路的方框圖如圖3所示。
其中左邊的3根線來自P300,TS是數字信號,控制收發轉換。實際上P300的收發類似半雙工方式,因為當它在“發送”劣態的時候,實際上并沒有輸出信號。因此,這個時候它可以處于接收狀態,如果接收到了優態,就表示發生了競爭。
3.1濾波電路
輸入濾波器電路如圖4所示。
這個濾波器有6階,對高頻干擾有很好的抑制,圖5是它的頻率響應曲線。在高頻段400kHz處衰減為3dB。高于400kHz的平均衰減為3dB,高于400kHz的平均衰減為128dB/dec,可以有效地過濾干擾信號。
P300輸出的信號包含豐富的高次諧波,為了減小對電網的干擾,先經過帶通濾波器再進行放大。濾波器也采用無源電路,原理與上面類似,這里不再多述。
3.2放大電路
P300的輸出信號經過濾波之后,其內阻很大,沒有驅動能力,而且電壓幅度不符合消費總線的要求,必須放大后才能夠驅動電力線。放大電路不僅要有強有力的輸出能力,還需有禁止輸出功能,這樣才能使P300接收其它節點發出信號。
電網的性能不確定,有時是容性負載,有時是感性負載。這樣就給末級電路采用反饋帶來很大困難。因為當負載的阻抗特性變化時,輸出的信號相位會發生變化,最終有可能是負反饋變成了正反饋,從而引起振蕩。
圖6電力載波放大電路
設計的電力載波放大電路如圖6所示,虛線的左邊的原理圖,右邊是實現電路圖。可以看出,這個電路有兩個輸入,一個輸出。輸入信號來自P300的電力載波,輸出使能控制放大器運行。圖6的左半部分,T1和T2接成互補式OTL輸出,它們的偏置電壓來自電阻R1、R2的分壓。來自P300的信號經過運放U1放大達到期望的幅度,然后通過電容耦合到T1和T2的基極。如果開關S1和S2合上,則T1和T2正常輸出電信,P300可以發送數據;如果S1和S2都斷開,那么T1和T2的基極都處于懸空狀態,輸出端也成為懸浮狀態,從而不會吸收由電力線傳來的信號,P300可以接收信號。
在圖6的右邊,開關S1和S2也被T7和T8取代,T1和T2被復合管取代,其中的電阻R11用來消除三極管漏電電流的影響。采用復合管是為提高放大倍數,這樣可以盡量減小級間耦合,即使輸出信號發生了畸變,也不會影響到前級而發生振蕩。實際證明這種做法是很可行的。其對容性負載、感性負載以及純電阻的負載都有較穩定的輸出,輸出阻抗小于2Ω。
圖7P300與電力線的耦合電路
3.3耦合電路及保護措施