期刊大全 雜志訂閱 SCI期刊 投稿指導(dǎo) 期刊服務(wù) 文秘服務(wù) 出版社 登錄/注冊(cè) 購(gòu)物車(chē)(0)

首頁(yè) > 精品范文 > 接口設(shè)計(jì)論文

接口設(shè)計(jì)論文精品(七篇)

時(shí)間:2023-03-22 17:38:05

序論:寫(xiě)作是一種深度的自我表達(dá)。它要求我們深入探索自己的思想和情感,挖掘那些隱藏在內(nèi)心深處的真相,好投稿為您帶來(lái)了七篇接口設(shè)計(jì)論文范文,愿它們成為您寫(xiě)作過(guò)程中的靈感催化劑,助力您的創(chuàng)作。

接口設(shè)計(jì)論文

篇(1)

1.1接口描述當(dāng)傳感器網(wǎng)絡(luò)的Zigbee網(wǎng)關(guān)節(jié)點(diǎn)不斷地將網(wǎng)絡(luò)節(jié)點(diǎn)中監(jiān)測(cè)到的溫度、煙霧等信息發(fā)送給上位機(jī)時(shí),上位機(jī)的通信模塊必須及時(shí)響應(yīng)接收數(shù)據(jù)。數(shù)據(jù)監(jiān)測(cè)上位機(jī)通信接口采用VB6.0中MSComm控件,利用串行端口傳輸和接收數(shù)據(jù),為應(yīng)用程序提供串行通信功能,具體包括2種處理通訊方式,一種是事件驅(qū)動(dòng)通訊,利用OnComm捕獲并處理通訊時(shí)間;另一種是通過(guò)檢查CommEvent的值,來(lái)查詢(xún)事件和錯(cuò)誤[5]。設(shè)計(jì)中采用第1種方式,在用戶(hù)界面設(shè)置好相應(yīng)的控制參數(shù),如波特率為38400bps、無(wú)校驗(yàn)位、8數(shù)據(jù)位、1位停止位等。當(dāng)傳感器網(wǎng)絡(luò)節(jié)點(diǎn)監(jiān)測(cè)的的溫度、煙霧等信息發(fā)送給上位機(jī)時(shí),將觸發(fā)監(jiān)測(cè)程序中MSComm控件的OnComm事件,進(jìn)而改變ComEvent的值,程序根據(jù)ComEvent的值執(zhí)行相應(yīng)的操作,如解析數(shù)據(jù)、發(fā)送數(shù)據(jù)、錯(cuò)誤分析等,然后更新內(nèi)存節(jié)點(diǎn)樹(shù)中當(dāng)前節(jié)點(diǎn)的實(shí)時(shí)數(shù)據(jù)、采集信息(如溫度、煙霧等)存入數(shù)據(jù)庫(kù)。

1.2實(shí)現(xiàn)方法MSComm控件可以設(shè)置以二進(jìn)制或者以文本方式接收,若設(shè)置為二進(jìn)制接受,控件會(huì)自動(dòng)將其轉(zhuǎn)變成十進(jìn)制。在該系統(tǒng)中,數(shù)據(jù)幀的數(shù)據(jù)是十六進(jìn)制的,設(shè)置以二進(jìn)制方式進(jìn)行接收,從接收緩存中獲取到的是十進(jìn)制的數(shù)據(jù)。

2數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)解析

2.1內(nèi)存中節(jié)點(diǎn)多叉樹(shù)的建立圖2節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)圖通信監(jiān)測(cè)模塊接收數(shù)據(jù)后,為了便于以圖形方式實(shí)時(shí)顯示網(wǎng)絡(luò)拓?fù)浜凸?jié)點(diǎn)監(jiān)測(cè)信息,以及提高查詢(xún)數(shù)據(jù)的運(yùn)行速度,需要在內(nèi)存中構(gòu)建一個(gè)動(dòng)態(tài)多叉樹(shù),用于存儲(chǔ)節(jié)點(diǎn)最新的數(shù)據(jù)信息。節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)圖如圖2所示。在內(nèi)存中建立一個(gè)關(guān)于節(jié)點(diǎn)的動(dòng)態(tài)多叉樹(shù),節(jié)點(diǎn)的唯一標(biāo)識(shí)是它的自身ID,根據(jù)數(shù)據(jù)幀中包含的父子關(guān)系可構(gòu)建出一棵多叉樹(shù)。首先定義一個(gè)名為treeNode的類(lèi),它的每一個(gè)實(shí)例都代表著一個(gè)節(jié)點(diǎn),里面包含節(jié)點(diǎn)的屬性(例如ID、溫度、煙霧等)和方法(例如獲取類(lèi)中節(jié)點(diǎn)數(shù)據(jù)的getData方法)。為了將節(jié)點(diǎn)間的父子關(guān)系表現(xiàn)出來(lái),可在類(lèi)treeNode中定義一個(gè)類(lèi)型為treeNode的動(dòng)態(tài)數(shù)組NodeChild(),用于存放子節(jié)點(diǎn)。如某節(jié)點(diǎn)ID為0000,子節(jié)點(diǎn)ID為0001,將子節(jié)點(diǎn)0001存放在節(jié)點(diǎn)0000的NodeChild()數(shù)組中,即可完成節(jié)點(diǎn)間的連接。當(dāng)需要找某個(gè)節(jié)點(diǎn)時(shí),從根節(jié)點(diǎn)開(kāi)始查找,若根節(jié)點(diǎn)的孩子沒(méi)有要找的節(jié)點(diǎn),則查找根節(jié)點(diǎn)的孩子的孩子,直到遍歷完所有節(jié)點(diǎn)。當(dāng)某數(shù)據(jù)幀發(fā)送到上位機(jī)時(shí),解析出來(lái)的原始數(shù)據(jù)分別放在相應(yīng)的變量,假設(shè)原始的溫度數(shù)據(jù)是3F4A,數(shù)據(jù)結(jié)構(gòu)中溫度變量名為T(mén)emperature,類(lèi)型為String,則直接將3F4A轉(zhuǎn)換為String類(lèi)型存在Temperature中。按上述方法構(gòu)建的動(dòng)態(tài)多叉樹(shù)能夠適應(yīng)網(wǎng)絡(luò)拓?fù)鋭?dòng)態(tài)變化的應(yīng)用場(chǎng)景,相比于定長(zhǎng)的數(shù)組,其更為節(jié)省內(nèi)存,不足之處是查詢(xún)算法較復(fù)雜。

2.2數(shù)據(jù)解析通信監(jiān)測(cè)模塊接收到Zigbee網(wǎng)關(guān)節(jié)點(diǎn)發(fā)送來(lái)的一組數(shù)據(jù)(數(shù)據(jù)幀)后,需要對(duì)收到的數(shù)據(jù)進(jìn)行協(xié)議解析,然后根據(jù)解析數(shù)據(jù)建立當(dāng)前動(dòng)態(tài)多叉樹(shù)。由于通信中難以避免數(shù)據(jù)幀出錯(cuò)、截?cái)唷G失等情況,故數(shù)據(jù)解析部分根據(jù)數(shù)據(jù)幀的格式制定了一套協(xié)議,丟棄異常數(shù)據(jù)幀。數(shù)據(jù)幀的部分格式如下:FFXXXXXXXXFF01XXXX02XXXX2FF之間,開(kāi)頭2個(gè)字節(jié)為節(jié)點(diǎn)ID,緊跟的2個(gè)字節(jié)節(jié)點(diǎn)的父ID01代表溫度類(lèi)型,后面2個(gè)字節(jié)是溫度數(shù)值02代表煙霧類(lèi)型,后面2個(gè)字節(jié)是煙霧值,依次類(lèi)推…。2個(gè)FF后的字節(jié)都是數(shù)據(jù),其格式如下:數(shù)據(jù)類(lèi)型(01,溫度類(lèi)型)+2個(gè)字節(jié)的數(shù)據(jù)(XXXX)。具體操作流程如圖3所示。首先檢驗(yàn)從串口進(jìn)來(lái)的數(shù)據(jù)幀開(kāi)頭一個(gè)字節(jié)是否FF,若是,則開(kāi)始解析。直到下一個(gè)FF,則節(jié)點(diǎn)ID部分解析結(jié)束,后面都是數(shù)據(jù)。繼續(xù)讀取下一個(gè)字節(jié),若為01,則將后面緊跟的兩個(gè)字節(jié)存進(jìn)相應(yīng)的溫度變量,讀取下一個(gè)字符;若該字節(jié)所表示的數(shù)據(jù)類(lèi)型未定義則跳過(guò)該字節(jié)及后面緊跟的兩個(gè)字節(jié),繼續(xù)讀取下一個(gè)字符。該過(guò)程一直執(zhí)行直到解析完整個(gè)數(shù)據(jù)幀。由于數(shù)據(jù)幀是不定長(zhǎng)的,而且沒(méi)有結(jié)束字符,所以每收到一個(gè)數(shù)據(jù)幀程序便立即從緩存中讀取并解析,以避免多個(gè)幀合并為一個(gè)數(shù)據(jù)幀導(dǎo)致解析錯(cuò)誤。當(dāng)出現(xiàn)多個(gè)數(shù)據(jù)幀并合情況時(shí),則丟棄后繼的幀。在幀解析完畢后,可以對(duì)解析出來(lái)的監(jiān)測(cè)數(shù)據(jù)信息進(jìn)行處理,將數(shù)據(jù)信息一份存進(jìn)內(nèi)存中節(jié)點(diǎn)多叉樹(shù),一份存進(jìn)數(shù)據(jù)庫(kù),實(shí)現(xiàn)實(shí)時(shí)更新數(shù)據(jù)和記錄當(dāng)前信息。以下是有關(guān)串口通信事件響應(yīng)及數(shù)據(jù)解析的部分代碼:

3數(shù)據(jù)庫(kù)的構(gòu)建與連接

3.1數(shù)據(jù)庫(kù)關(guān)系數(shù)據(jù)庫(kù)關(guān)系圖如圖4所示。由于每個(gè)節(jié)點(diǎn)都有大量歷史數(shù)據(jù),所以每一個(gè)節(jié)點(diǎn)都創(chuàng)建一個(gè)表;USERS表用于保存監(jiān)測(cè)系統(tǒng)的用戶(hù)信息;NodeTran用于保存數(shù)據(jù)幀轉(zhuǎn)發(fā)路徑;Nodelist用于保存節(jié)點(diǎn)列表;Limit用于保存監(jiān)測(cè)系統(tǒng)的閾值管理設(shè)置值;Node_XXXX為節(jié)點(diǎn)XXXX的歷史數(shù)據(jù)表。除了用戶(hù)表,所有數(shù)據(jù)都采用varchar類(lèi)型。

3.2存儲(chǔ)過(guò)程的創(chuàng)建為了提高通信監(jiān)測(cè)模塊與數(shù)據(jù)庫(kù)之間通信的效率,將一些常用且較為復(fù)雜的SQL語(yǔ)句存放在數(shù)據(jù)庫(kù)中,使用時(shí)只需要調(diào)用存儲(chǔ)過(guò)程,輸入必要的參數(shù)即可完成相應(yīng)的SQL語(yǔ)句操作,這樣可以大大減少程序與數(shù)據(jù)庫(kù)之間的通信量。

3.3使用ADO將VB6.0與SQL2005連接ADO是為Microsoft最新和最強(qiáng)大的數(shù)據(jù)訪問(wèn)范例OLEDB而設(shè)計(jì)的,擁有一個(gè)易于使用的應(yīng)用程序?qū)咏涌?。通過(guò)使用ADO2.0對(duì)象模型中的Recordset和Connection對(duì)象實(shí)現(xiàn)兩者連接和數(shù)據(jù)的存取。Connection對(duì)象包含關(guān)于某個(gè)數(shù)據(jù)提供程序的信息,如數(shù)據(jù)庫(kù)用戶(hù)、密碼、數(shù)據(jù)庫(kù)名等;Recordset對(duì)象包含某個(gè)查詢(xún)返回的記錄,可以創(chuàng)建一個(gè)Connection對(duì)象,在同一個(gè)連接上打開(kāi)多個(gè)Recordset對(duì)象[8]。操作流程圖如圖5所示。

4結(jié)語(yǔ)

篇(2)

地面測(cè)試臺(tái)的測(cè)試對(duì)象為某采編存儲(chǔ)器。測(cè)試臺(tái)的主要功能包括向采編存儲(chǔ)器提供模擬信號(hào)供其采集,向采編存儲(chǔ)器下發(fā)控制命令,接收采編存儲(chǔ)器下發(fā)的高速LVDS實(shí)時(shí)數(shù)據(jù)并進(jìn)行后續(xù)處理。測(cè)試臺(tái)的整體結(jié)構(gòu)如圖1所示。CPCI總線(xiàn)上掛有3個(gè)CPCI板卡,分別為CPU卡、接口卡、信源卡。其中,CPU卡為處理系統(tǒng),接口卡和信源卡為功能卡。本文將以接口卡為主要依據(jù)來(lái)介紹如何以FPGA邏輯控制來(lái)實(shí)現(xiàn)CPCI局部總線(xiàn)接口和高速LVDS接口。

2LVDS高速數(shù)據(jù)接口實(shí)現(xiàn)

2.1LVDS接口硬件電路設(shè)計(jì)由于趨膚效應(yīng)和介質(zhì)損耗,高速信號(hào)在傳輸過(guò)程中會(huì)衰減。因此,當(dāng)傳輸距離較長(zhǎng)時(shí),往往要使用電纜驅(qū)動(dòng)器和均衡器來(lái)保證高速數(shù)據(jù)傳輸?shù)臏?zhǔn)確性。電纜驅(qū)動(dòng)器將信號(hào)以最大功率耦合到電纜上[4],延長(zhǎng)信號(hào)的傳輸距離,電纜均衡器可以對(duì)傳輸?shù)男盘?hào)進(jìn)行高頻補(bǔ)償,以至達(dá)到標(biāo)準(zhǔn)邏輯電位。本設(shè)計(jì)中,LVDS串行器/解串器分別選用TI公司的SN65LV1203和SN65LV1224,信號(hào)驅(qū)動(dòng)器/電纜均衡器分別選用NS公司的CLC001和CLC014。LVDS接口電路結(jié)構(gòu)如圖2所示,采編存儲(chǔ)器的FPGA控制LVDS串行器將10bit并行數(shù)據(jù)轉(zhuǎn)換成差分串行數(shù)據(jù),再通過(guò)電纜驅(qū)動(dòng)器將信號(hào)耦合到電纜上。地面測(cè)試臺(tái)的電纜均衡器對(duì)接收到的信號(hào)進(jìn)行高頻補(bǔ)償之后傳送給解串器,解串器根據(jù)參考時(shí)鐘將差分串行數(shù)據(jù)轉(zhuǎn)換成10bit的并行數(shù)據(jù),由FP-GA進(jìn)行后續(xù)的處理。

2.2FPGA邏輯控制LVDS數(shù)據(jù)接收由于CPCI接口傳輸?shù)臅r(shí)鐘和LVDS數(shù)據(jù)接收電路的時(shí)鐘不匹配,為了保證數(shù)據(jù)傳輸?shù)目煽啃?,在編?xiě)VHDL語(yǔ)言程序時(shí)FPGA內(nèi)部調(diào)用一個(gè)異步時(shí)鐘控制的緩存FIFO[8]IP核來(lái)對(duì)接收到的LVDS高速數(shù)據(jù)進(jìn)行緩存,如圖2所示。上位機(jī)通過(guò)配置PCI9054的傳輸計(jì)數(shù)寄存器,將一次DMA傳輸?shù)臄?shù)據(jù)量設(shè)置為2kbyte。寫(xiě)FIFO的時(shí)鐘為18.432MHz,讀FIFO的時(shí)鐘為36.864MHz,當(dāng)FIFO內(nèi)數(shù)據(jù)量達(dá)到2kbyte時(shí),F(xiàn)PGA立即通知上位機(jī)啟動(dòng)一次DMA傳輸。經(jīng)計(jì)算,從FIFO內(nèi)讀走2kbyte數(shù)據(jù)大約耗時(shí)54μs,在這個(gè)時(shí)間段內(nèi)寫(xiě)入FIFO的數(shù)據(jù)量大約為1kbyte,所以,當(dāng)DMA傳輸結(jié)束時(shí),F(xiàn)IFO內(nèi)數(shù)據(jù)不足2kbyte,上位機(jī)直到FIFO內(nèi)數(shù)據(jù)量再次達(dá)到2kbyte時(shí)才會(huì)啟動(dòng)下一次的DMA傳輸。為了避免PCI9054不能立即執(zhí)行DMA傳輸而導(dǎo)致FIFO數(shù)據(jù)溢出,F(xiàn)IFO容量要大于2kbyte。本設(shè)計(jì)中選擇容量為4kbyte的FIFO,經(jīng)驗(yàn)證,不會(huì)出現(xiàn)FIFO溢出現(xiàn)象。

3CPCI局部總線(xiàn)接口實(shí)現(xiàn)

實(shí)現(xiàn)CPCI接口協(xié)議一般有兩種方法。其中一種方法為:利用FPGA實(shí)現(xiàn)接口邏輯。這種方法雖然可以充分利用FPGA的資源,減小成本,但PCI邏輯十分復(fù)雜,可靠性不能得到保證,且開(kāi)發(fā)周期長(zhǎng)。另外一種方法為:采用專(zhuān)用的PCI接口控制芯片。專(zhuān)用接口芯片功能強(qiáng)大,性能穩(wěn)定,設(shè)計(jì)方便,很大程度上減少了設(shè)計(jì)者的工作量,縮短了開(kāi)發(fā)周期。所以,本設(shè)計(jì)中選擇使用PCI9054接口控制芯片與FPGA配合工作的方式來(lái)實(shí)現(xiàn)CPCI局部總線(xiàn)接口通信。

3.1EEPROM的配置在Windows環(huán)境下,為有效管理多塊CPCI板卡資源,實(shí)現(xiàn)多卡協(xié)同工作。通過(guò)設(shè)置EEPROM配置選項(xiàng)中的ClassCode/REV值,解決使用同一驅(qū)動(dòng)情況下,多塊CPCI板卡識(shí)別問(wèn)題。地面測(cè)試臺(tái)含信源卡和接口卡兩塊CPCI功能板卡,圖3為接口卡的EEPROM配置文件截圖,各板卡需要設(shè)置不同的ClassCode/Rev(圖中紅色選框部分),上位機(jī)程序通過(guò)識(shí)別不同的ClassCode/Rev達(dá)到控制不同板卡的目的。ClassCode/Rev為一個(gè)32bit數(shù)據(jù),規(guī)定高8bit作為不同板卡區(qū)分標(biāo)志,低24bit保留。其中D31~D28功能標(biāo)識(shí),區(qū)分是否為信源卡、接口卡等功能卡。D27~D24數(shù)量標(biāo)識(shí),區(qū)分當(dāng)前功能卡的數(shù)量,具體約束如下表1所示。

3.2CPCI局部總線(xiàn)實(shí)現(xiàn)方法

3.2.1PCI9054工作模式選擇PCI9054總線(xiàn)控制芯片有3種工作模式,即M模式、C模式、J模式。其中,C模式最為簡(jiǎn)單,類(lèi)似于單片機(jī)的工作方式,它的地址線(xiàn)和數(shù)據(jù)線(xiàn)分開(kāi)使用,可以很方便地控制本地時(shí)序。所以本設(shè)計(jì)中PCI9054工作于C模式,由FPGA邏輯控制本地時(shí)序來(lái)完成CPCI局部總線(xiàn)與功能板卡之間的通信。

3.2.2CPCI總線(xiàn)訪問(wèn)本地總線(xiàn)PCI9054的訪問(wèn)方式選擇DMA方式。PCI9054作為主控設(shè)備,通過(guò)內(nèi)部的DMA控制器來(lái)實(shí)現(xiàn)局部總線(xiàn)上數(shù)據(jù)與CPCI總線(xiàn)上數(shù)據(jù)的傳輸。在DMA訪問(wèn)方式下,一個(gè)總線(xiàn)周期的時(shí)序如圖4所示。當(dāng)CPCI總線(xiàn)訪問(wèn)本地總線(xiàn)時(shí),PCI9054內(nèi)部的DMA控制器發(fā)出LHOLD信號(hào)來(lái)申請(qǐng)控制局部總線(xiàn),當(dāng)其收到響應(yīng)信號(hào)LHOLDA后,才獲得局部總線(xiàn)的控制權(quán)。當(dāng)ADS#信號(hào)有效時(shí),局部總線(xiàn)上的地址信號(hào)LA為有效地址;當(dāng)BLAST#信號(hào)有效時(shí),代表一次單周期訪問(wèn)開(kāi)啟;READY#為本地總線(xiàn)的狀態(tài)反饋信號(hào),只有當(dāng)其有效時(shí),表示本地總線(xiàn)已經(jīng)準(zhǔn)備好,才可以進(jìn)行訪問(wèn);當(dāng)LW/R#為高時(shí),代表單周期訪問(wèn)為寫(xiě)操作,當(dāng)LW/R#為低時(shí),代表單周期訪問(wèn)為讀操作。在本設(shè)計(jì)中,F(xiàn)PGA通過(guò)識(shí)別地址信號(hào)LA來(lái)判斷具體的操作類(lèi)型。當(dāng)上位機(jī)向接口卡下發(fā)控制命令時(shí),為CPCI總線(xiàn)到本地總線(xiàn)的數(shù)據(jù)傳輸,具體的工作流程為:當(dāng)上位機(jī)下發(fā)命令時(shí),啟動(dòng)一次單周期寫(xiě)訪問(wèn),同時(shí)下發(fā)特定的寫(xiě)地址LA1,F(xiàn)PGA反饋READY#信號(hào),并判斷到LW/R#信號(hào)為高,即得知上位機(jī)要下發(fā)數(shù)據(jù),便從該特定地址LA1將命令代碼讀出,進(jìn)行解碼之后將命令下發(fā)給采編存儲(chǔ)器。當(dāng)接口卡向上位機(jī)傳輸LVDS高速數(shù)據(jù)時(shí),為本地總線(xiàn)到CPCI總線(xiàn)的數(shù)據(jù)傳輸,具體的工作流程為:當(dāng)圖1中所示的LVDS數(shù)據(jù)緩存FIFO內(nèi)數(shù)據(jù)量達(dá)到2kbyte,啟動(dòng)一次DMA傳輸,即一次DMA傳輸將2kbyte的數(shù)據(jù)上傳給上位機(jī)進(jìn)行實(shí)時(shí)顯示與處理。上位機(jī)通過(guò)下發(fā)特定地址信號(hào)LA2來(lái)向FPGA查詢(xún)FIFO內(nèi)數(shù)據(jù)量是否達(dá)到2kbyte,一旦其得到緩存FIFO內(nèi)數(shù)據(jù)量滿(mǎn)足要求的信息,立即啟動(dòng)一次單周期讀訪問(wèn),并向FPGA下發(fā)數(shù)據(jù)傳輸?shù)刂稬A3,F(xiàn)PGA反饋READY#信號(hào),并判斷到LW/R#信號(hào)為低,便將LVDS數(shù)據(jù)通過(guò)地址LA3上傳給上位機(jī)。

4設(shè)計(jì)驗(yàn)證

將信源卡和接口卡分別插到背板上的2號(hào)和3號(hào)物理槽中,1號(hào)物理槽為系統(tǒng)槽,打開(kāi)計(jì)算機(jī)系統(tǒng),安裝驅(qū)動(dòng)之后,兩塊功能板卡均能夠被識(shí)別。分別對(duì)兩塊板卡進(jìn)行操作,均能實(shí)現(xiàn)各自的功能且互不影響,說(shuō)明EEPROM的配置正確可行。以接口卡為例,用Chipscope來(lái)監(jiān)測(cè)CPCI總線(xiàn)對(duì)本地進(jìn)行讀、寫(xiě)操作的實(shí)際過(guò)程,圖5和圖6分別為單周期讀訪問(wèn)時(shí)序截圖和單周期寫(xiě)訪問(wèn)截圖。如圖5所示,當(dāng)FIFO內(nèi)數(shù)據(jù)量達(dá)到2kbyte時(shí),信號(hào)f_fifo_hf變高,此時(shí)啟動(dòng)一次單周期讀訪問(wèn),LW/R#為低,通過(guò)地址0008h將數(shù)據(jù)87h上傳給上位機(jī)。實(shí)際時(shí)序與第3節(jié)介紹的本地總線(xiàn)向CPCI總線(xiàn)傳輸數(shù)據(jù)的理論時(shí)序一致,對(duì)接收到的數(shù)據(jù)文件進(jìn)行分析,數(shù)據(jù)結(jié)構(gòu)完整,數(shù)據(jù)包計(jì)數(shù)連續(xù),沒(méi)有丟數(shù)現(xiàn)象,驗(yàn)證了本設(shè)計(jì)中本地總線(xiàn)向CPCI總線(xiàn)傳輸數(shù)據(jù)的正確性。如圖6所示,上位機(jī)向FPGA下發(fā)控制信號(hào),此時(shí)啟動(dòng)一次單周期寫(xiě)訪問(wèn),LW/R#為高,F(xiàn)PGA通過(guò)地址0004h獲得命令代碼67h。實(shí)際通信時(shí)序與第3節(jié)介紹的CPCI總線(xiàn)向本地總線(xiàn)傳輸數(shù)據(jù)的理論時(shí)序一致,且命令下發(fā)正確,驗(yàn)證了本設(shè)計(jì)中CPCI總線(xiàn)向本地總線(xiàn)傳輸數(shù)據(jù)的正確性。

5總結(jié)

篇(3)

關(guān)鍵詞:CPUIC卡TDA8007ISO7816

IC卡(IntegratedCircuitcard)即集成電路卡,是將一個(gè)集成電路芯片鑲嵌于朔料基片中,封裝成卡的形式,外形與常用的覆蓋磁條的磁卡相似。IC卡芯片具有寫(xiě)入和存儲(chǔ)數(shù)據(jù)的能力。IC卡存儲(chǔ)器中的內(nèi)容根據(jù)需要可以有條件地供外部讀取,或供內(nèi)部信息處理和判定。根據(jù)卡中所鑲嵌的集成電路的不同,可以分成存儲(chǔ)器卡、邏輯加密卡、CPU卡三類(lèi)。其中CPU卡即為由中央處理器CPU、EEPROM、隨機(jī)存儲(chǔ)器RAM以及固化在只讀存儲(chǔ)器ROM中的片內(nèi)操作系統(tǒng)COS(ChipOperationSystem)組成的IC卡。IC卡按與外界數(shù)據(jù)傳送的形式來(lái)分,有接觸式和非接觸式兩種。

圖1T=0的CPU卡APDU指令實(shí)現(xiàn)流程

1CPUIC卡T=0的協(xié)議介紹

目前大多數(shù)CPUIC卡采用T=0模式。所謂T=0,即CPUIC卡與接口設(shè)備(即讀寫(xiě)器)中數(shù)據(jù)傳輸方式為異步半雙工字符傳輸模式。

從T=0協(xié)議的功能出發(fā),該協(xié)議的實(shí)現(xiàn)可以分為物理層、數(shù)據(jù)鏈路層、終端傳輸層和應(yīng)用層。其中物理層和數(shù)據(jù)鏈路層可以具體參看ISO7816標(biāo)準(zhǔn)。在T=0協(xié)議應(yīng)用,終端傳輸層和應(yīng)用層實(shí)際上是不易分割來(lái)說(shuō)明的,下面簡(jiǎn)單說(shuō)明。

終端傳輸層根據(jù)卡片返回的過(guò)程字符和狀態(tài)字節(jié)執(zhí)行相應(yīng)的操作,使讀寫(xiě)器對(duì)數(shù)據(jù)的處理過(guò)程明朗清晰。卡片返回的過(guò)程字節(jié)和狀態(tài)字節(jié)跟應(yīng)用層發(fā)送給卡的APDU(ApplicationProtocolDataUnit,應(yīng)用協(xié)議數(shù)據(jù)單元)和VPP使用等有關(guān)。表1為VPP未用時(shí)的終端傳輸層中返回的過(guò)程字節(jié)。

表1

字節(jié)值結(jié)果

ACKINSVPP空閑,所有其余的數(shù)據(jù)字節(jié)相繼續(xù)被傳送

INS+''''FF''''VPP空閑,下一個(gè)數(shù)據(jù)字節(jié)隨后被傳送

SW1SW2VPP空閑,接口設(shè)備等待SW2字節(jié)

應(yīng)用層即為由CLA、INS、P1、P2、P3作為命令頭組成的命令消息體的APDU響應(yīng)和應(yīng)答處理層。其中CLA為指令類(lèi)別,INS為指令碼,P1、P2為參數(shù),P3為根據(jù)APDU的不同格式為發(fā)送給卡的數(shù)據(jù)長(zhǎng)度或期望響應(yīng)的數(shù)據(jù)長(zhǎng)度。APDU的幾種情況如表2所列。

表2

命令頭發(fā)送數(shù)據(jù)長(zhǎng)度發(fā)送的數(shù)據(jù)期望應(yīng)答的數(shù)據(jù)長(zhǎng)度

通用APDUCLAINSP1PLCDataLE

情況一CLAINSP1P

情況二CLAINSP1PLE

情況三CLAINSP1PLCData

情況四CLAINSP1P2LCDataLE

CPU卡對(duì)接口設(shè)備(即讀寫(xiě)器)的應(yīng)答APDU情況如表3所列。

表3

體尾

數(shù)據(jù)DataSW1SW2

其中體中的數(shù)據(jù)字節(jié)數(shù)由命令A(yù)PDU中的LE指出;SW1、SW2是必備的,可以指明命令A(yù)PDU執(zhí)行正確或執(zhí)行出錯(cuò)的錯(cuò)誤類(lèi)型。

2基于T=0傳輸協(xié)議的CPUIC的APDU指令流程

根據(jù)目前CPU卡的常用T=0協(xié)議、自帶編程升壓電路的應(yīng)用情況,以及本讀寫(xiě)器接收IC卡數(shù)據(jù)報(bào)文直接發(fā)送PC機(jī)處理的特點(diǎn),本讀寫(xiě)器可行的APDU命令和響應(yīng)的處理流程如圖1所示。

3讀寫(xiě)器的硬件組成

讀寫(xiě)器的硬件部分主要由IC接口管理芯片TDA8007、MCUAT89C52、外部數(shù)據(jù)存儲(chǔ)器W24257S、串口電平轉(zhuǎn)換芯片MAX3226、安全I(xiàn)C卡座(即SAM卡座)、應(yīng)用IC卡座、鍵盤(pán)口供電的串口通信線(xiàn)及其它相關(guān)元器件組成。

圖2所示為通過(guò)PC機(jī)控制管理的外置于PC機(jī)的接觸式CPUIC卡讀寫(xiě)器。通過(guò)定制的數(shù)據(jù)線(xiàn),該讀寫(xiě)器的5V直流電源可直接由鍵盤(pán)口提供,同時(shí)數(shù)據(jù)線(xiàn)還負(fù)責(zé)PC機(jī)與讀寫(xiě)器的串行數(shù)據(jù)交換。在大部分IC卡讀寫(xiě)應(yīng)用中,都涉及到IC卡的認(rèn)證和數(shù)據(jù)讀寫(xiě)的國(guó)解密問(wèn)題,所以本讀寫(xiě)器除了提供一個(gè)供用戶(hù)使用的IC卡接口卡座外,還內(nèi)置了一個(gè)SAM卡,即安全I(xiàn)C卡卡座,以方便安裝SAM卡,保證應(yīng)用IC卡讀寫(xiě)時(shí)的數(shù)據(jù)安全,保護(hù)用戶(hù)的利益。

硬件的其它組成部分,如處理器,目前采用Atmel的89C52。其4KB的Flash程序存儲(chǔ)器可以滿(mǎn)足讀寫(xiě)器的程序空間需要。由于PC機(jī)與89C52、89C52與TDA8007的數(shù)據(jù)交換要求的暫存數(shù)據(jù)空間比較大,89C52提供的256字節(jié)不夠,需外加一片數(shù)據(jù)存儲(chǔ)器。本讀寫(xiě)器中使用的是華邦的W24257S。其有32KB存儲(chǔ)容量,IC接口部分的主要芯片為Philips的TDA8007。

4IC卡接口芯片應(yīng)用

下面介紹一下TDA8007及其應(yīng)用。TDA8007的原理結(jié)構(gòu)如圖3所示。

TDA8007芯片能夠提供兩個(gè)能同時(shí)滿(mǎn)足ISO7816標(biāo)準(zhǔn)及EMV和GSM11-11標(biāo)準(zhǔn)的IC卡讀寫(xiě)接口。在本讀寫(xiě)器中,一個(gè)用于與應(yīng)用IC通信,另一個(gè)用于與安全I(xiàn)C卡通信。與上文CPU卡的觸點(diǎn)圖相對(duì)應(yīng),CLKi、RSTi、VCCi、I/Oi、GNDCi、PRESi、C4i、C8i(其中i=1,2;C4i、C8i未用;PRESi可用于檢測(cè)IC卡是否插入。具體應(yīng)用可參看TDA8007的技術(shù)文檔)都直接由TDA8007提供給IC卡接口相連,MCU只需通過(guò)其接口控制并行通信來(lái)管理TDA8007,便可實(shí)現(xiàn)對(duì)IC卡的上電、下電及讀寫(xiě)數(shù)據(jù)處理。其中,微處理器既可以通過(guò)總線(xiàn)復(fù)用把TDA8007內(nèi)部的所有寄存器作為外部存儲(chǔ)器,用MOVX尋址,也可以通過(guò)非總線(xiàn)復(fù)用方式訪問(wèn),此時(shí)TDA8007用AD0~AD3來(lái)區(qū)分內(nèi)部各寄存器。另外,TDA8007的片選信號(hào)和外部中斷信號(hào)線(xiàn)可以方便讀寫(xiě)器處理多個(gè)IC卡頭。TDA8007的特別硬件ESD處理、接口短路處理、電源出錯(cuò)處理等也給IC卡和IC卡讀寫(xiě)器提供了比較高的安全保護(hù);同時(shí),TDA8007內(nèi)部集成的電源管理功能允許TDA8007的供電范圍可達(dá)2.7~6.0V,并且TDA8007通過(guò)電源管理可以給IC卡提供5.0V、3.0V及1.8V的電源,以適合不同工作電壓的IC卡應(yīng)用。

圖3IC卡接口芯片TDA8007的原理框圖

本讀寫(xiě)器是通過(guò)總線(xiàn)復(fù)用對(duì)TDA8007的寄存器進(jìn)行控制的。其中MCU的P1.5為T(mén)DA8007的片選,P0口為與之通信的8位數(shù)據(jù)線(xiàn),TDA8007的各寄存器預(yù)先被宏定義的成微處理器的一個(gè)外部數(shù)據(jù)單元(下面電程序處的定義),從而方便MCU訪問(wèn)。下面結(jié)合TDA8007寄存器的定義和位分配,給出應(yīng)用TDA8007接口芯片對(duì)IC卡進(jìn)行上電激活和下電的程序。TDA8007的寄存器主要三類(lèi)。第一類(lèi),通用寄存器:①卡槽選擇CSR;②硬件狀態(tài)HSR;③定時(shí)器TOR1、TOR2、TOR3。第二類(lèi),ISO7816串行處理寄存器:①串行狀態(tài)USR;②混合狀態(tài)MSR;③串行發(fā)送UTR;④串行接收URR;⑤隊(duì)列控制FCR。第三類(lèi),卡專(zhuān)屬寄存器:①可編程分頻PDR;②保護(hù)時(shí)間GTR;③串行控制UCR1、UCR2;④時(shí)鐘配置CCR;⑤上電控制PCR。注意:對(duì)于卡專(zhuān)屬的寄存器,即卡接口1、卡接口2分別對(duì)應(yīng)的寄存器,邏輯上具有相同的名及訪問(wèn)地址,因而,對(duì)不同的瞳操作,需要通過(guò)CSR選擇對(duì)應(yīng)的卡槽來(lái)切換卡專(zhuān)卡屬寄存器的映射的物理空間。所以,接口設(shè)備每次從一個(gè)卡的上下電或讀寫(xiě)轉(zhuǎn)向另一卡,都需要訪CSR設(shè)定對(duì)應(yīng)的卡槽。對(duì)于每個(gè)寄存器的位定義不再多述,主動(dòng)性者可參看TDA8007的技術(shù)文檔。

5上下電過(guò)程及具體程序

圖4為IC卡的上電時(shí)序圖。要實(shí)現(xiàn)之,需對(duì)PCR進(jìn)行寫(xiě)操作。其中START=PCR.0,RSTIN=PCR.2,VUP上升表示激活了TDA8007中的電壓轉(zhuǎn)換電路。當(dāng)START置高時(shí),只要能檢測(cè)到選定卡槽中的IC卡存在,且沒(méi)有TDA8007能檢測(cè)到并在HSR中指示的硬件錯(cuò)誤出現(xiàn),則對(duì)應(yīng)IC卡接口的VCC1或VCC2將能被提供響應(yīng)的電平(5V、3V或1.8V)。隨后對(duì)應(yīng)卡的I/O數(shù)據(jù)線(xiàn)被置成高狀態(tài)(Z狀態(tài)),給IC卡提供設(shè)定的時(shí)鐘信號(hào),常用為3.5712MHz。大約在START置高108ETU后,RSTIN置高。因?yàn)镽ST為RSTIN的拷貝,則對(duì)應(yīng)卡的RST被置高。然后,用TDA8007提供的定時(shí)器TOR3、TOR2設(shè)定對(duì)ATR(AnswerToRequest)即復(fù)位應(yīng)答首字節(jié)的最大等待時(shí)間120ETU(ElementTimeUnit),TOC設(shè)定定時(shí)器工作方式,便開(kāi)始等待ATR首字節(jié)到來(lái)后做相應(yīng)處理。至此,IC卡上電激活工作完成,隨后可以根據(jù)ATR字節(jié)的要求的工作方式對(duì)IC卡進(jìn)行相應(yīng)的讀寫(xiě)處理。具體見(jiàn)上電程序。

圖4TDA8007產(chǎn)生滿(mǎn)足ISO7816標(biāo)準(zhǔn)訴IC卡上電激活時(shí)序

TDA8007寄存器訪問(wèn)的預(yù)定義

#include<absacc.h>

#defineXXXXBYTE[0x8000]//XXX表示CSR等各寄存器上電程序如下:

P1.5=0;//片選TDA8007

CSR&=0xf8;

CSR|=ncard;//選擇卡,ncard=1,2

CSR&=0xf7;

CSR|=0xf7;

CSR|=0x08;//復(fù)位UART的寄存器

UCR2&=0xf7;//異步模式,SAN=0

CCR&=0xdf;//時(shí)鐘停止于低電平

UCR2|=0x60;//關(guān)閉附加中斷及收發(fā)中斷

GTR=0xff;//保持時(shí)間12ETU

If(v==1)//v為函數(shù)變量

PCR|=0x08;//1.8V卡用

elseif(v==3)

PCR|=0x02;//3V卡用

Else

PCR&=0xfd;//5V卡用

UCR2&=0xfc;//CKU=PSC=0,--31

FCR=0x00;//1奇偶校驗(yàn)1FIFO

PDR=0x0c;//Divider=12

CCR=0x00;//不分頻

PCR&=0xfb;//RSTIN=0

UCR2|=0x04;//不自動(dòng)轉(zhuǎn)換

UCR1=0x01;//正向約定

UCR1&=0xf7;//接收模式

flag3=0;//復(fù)位定時(shí)標(biāo)志

flagatr=0;//接收ATR首字節(jié)定時(shí)標(biāo)志

PCR|=0x01;//激活

TOR2=0x6c;

TOR3=0x00;

TOC=0x61;//RST拉高前等待108ETU

while(flag3==0);//定時(shí)時(shí)間到,在中斷中設(shè)置flag3=1

TOC=0x00;//關(guān)閉定時(shí)器

PCR|=0x04;//給復(fù)位拉高

TOR2=0x78;

TOR3=0x00;

TOC=0x61;//RST拉高前等待

flagatr=1;

ATR();//復(fù)位應(yīng)答處理函數(shù)

圖5為IC卡的下電時(shí)序圖。相對(duì)于上電時(shí)序,下電過(guò)程對(duì)時(shí)間的要求不是很?chē)?yán)格,只要設(shè)計(jì)者控制TDA8007按照一定的順序置低START、RSTIN和停止CLK即可,然后TDA8007會(huì)自動(dòng)逐步釋放RST、I/O、Vcc及VUP。具體處理見(jiàn)下電程序。

下電程序:

P15=0;

PCR&=0xfe;//START=0;下電

PCR&=0xfb;//卡的復(fù)位腳保持0

CCR&=0xdf;//停止時(shí)鐘于低

CCR|=0x10;//停止時(shí)鐘

P15=1;

6使用TDA8007應(yīng)當(dāng)注意的問(wèn)題

TDA8007對(duì)于Vcc、RST出錯(cuò),芯片過(guò)熱(如圖IC卡為電源短路卡或金屬片),或IC卡插入拔出時(shí)都會(huì)產(chǎn)生中斷輸出。每次中斷處理結(jié)束,應(yīng)注意把HSR中的值讀入一個(gè)臨時(shí)地址,以便清楚HSR中的標(biāo)志。

每次發(fā)送數(shù)據(jù)到IC前,即接收IC卡的最后一個(gè)數(shù)據(jù)之前,應(yīng)設(shè)置寄存器UCR1中的LCT位,以便接收完IC卡的數(shù)據(jù)后,自動(dòng)切換成發(fā)送狀態(tài)。

對(duì)TDA8007部分布線(xiàn)時(shí)應(yīng)注意,時(shí)鐘信號(hào)線(xiàn)與其它線(xiàn)的隔離:最好被地線(xiàn)包圍。

對(duì)于電路板上TDA8007部分的電容應(yīng)盡量靠近TDA8007,其中電容Cap、Cbp、Cup尤其如此,并最好不要在這些電容連向TDA8007引腳過(guò)程中使用過(guò)孔;同時(shí),Cap、Cup、Cbp電容的ESR要盡量小。

對(duì)TDA8007處理的兩個(gè)IC卡座中的任何一個(gè)執(zhí)行上電、下電、讀寫(xiě)卡操作之前,必須執(zhí)行選擇卡座的操作函數(shù),以便選中具體的IC卡進(jìn)行處理。

對(duì)IC卡操作中上電時(shí)序中的定時(shí),讀寫(xiě)卡字節(jié)間等待定時(shí)等都可使用TDA8007中的定時(shí)器及定時(shí)控制器操作,注意其定時(shí)器為向下計(jì)數(shù)方式。

篇(4)

關(guān)鍵詞:PCI總線(xiàn)TM1300以太網(wǎng)通信接口pSOS+內(nèi)核pNA+

1概述

TM1300是Philips公司推出的新一代高性能多媒體數(shù)字信號(hào)處理器芯片?;赥M1300的DSP應(yīng)用系統(tǒng)適合于實(shí)時(shí)聲音、圖像處理,可廣泛應(yīng)用于會(huì)議電視、可視電話(huà)、數(shù)字電視等應(yīng)用場(chǎng)合。它不僅具有強(qiáng)大的處理能力,同時(shí)還具有非常友好的音頻和視頻以及SSI和PCI等I/O接口,因此可以根據(jù)應(yīng)用的需要靈活地構(gòu)造各種視頻通信系統(tǒng)。鑒于目前計(jì)算機(jī)網(wǎng)絡(luò)的普及和網(wǎng)上視頻業(yè)務(wù)的發(fā)展,很有必要為T(mén)M1300視頻編碼系統(tǒng)開(kāi)發(fā)一個(gè)以太網(wǎng)接口以拓寬其應(yīng)用范圍。開(kāi)發(fā)以太網(wǎng)接口的一種合理思路是利用TM1300集成的PCI接口來(lái)驅(qū)動(dòng)專(zhuān)用的以太網(wǎng)接口芯片。由于目前多數(shù)以太網(wǎng)接口芯片(如Real-tek8029,Realtek8139等)都采用PCI接口,因此,可以用PCI總線(xiàn)將數(shù)據(jù)從TM1300傳輸?shù)竭@些專(zhuān)用的以太網(wǎng)接口芯片后,再由它們發(fā)送數(shù)據(jù),而且TM1300可以在嵌入式操作系統(tǒng)pSOS中運(yùn)行,同時(shí)由于系統(tǒng)pSOS帶有TCP/IP協(xié)議棧因此可以方便地完成編碼碼流的TCP/IP封裝。

根據(jù)以上思路筆者在進(jìn)行了前期測(cè)試的基礎(chǔ)上進(jìn)行了電路板的設(shè)計(jì)并順利完成了調(diào)試。目前這個(gè)以太網(wǎng)接口已經(jīng)基本開(kāi)發(fā)成功。本文將對(duì)這個(gè)設(shè)計(jì)的技術(shù)要點(diǎn)從硬件和軟件兩個(gè)方面進(jìn)行詳細(xì)介紹。

2TM1300及PCI總線(xiàn)接口

該系統(tǒng)的硬件結(jié)構(gòu)框圖如圖1所示。本系統(tǒng)硬件設(shè)計(jì)的重點(diǎn)是PCI總線(xiàn)接口。PCI總線(xiàn)根據(jù)數(shù)據(jù)位的寬度有32位和64位之分,64位的數(shù)據(jù)線(xiàn)與32位是兼容的。PC機(jī)中常見(jiàn)的是32位PCI總線(xiàn),它的有用引腳總數(shù)是110個(gè),可以分成3組。第一組是基本功能信號(hào)線(xiàn),包括32位共享數(shù)據(jù)地址線(xiàn)AD〔00..31〕、接口控制線(xiàn)、仲裁線(xiàn)、時(shí)鐘線(xiàn)、系統(tǒng)復(fù)位線(xiàn)、中斷線(xiàn);第二組是附加功能信號(hào)線(xiàn),包括錯(cuò)誤報(bào)告線(xiàn)、cache功能支持線(xiàn)、JTAG邊界掃描線(xiàn);第三組是電源線(xiàn),包括設(shè)備耗電量標(biāo)識(shí)線(xiàn)、3.3V電源線(xiàn)(12根)、5V電源線(xiàn)(13根)、地線(xiàn)(22根)。

因?yàn)镽ealtek8029不具備PCI的附加功能信號(hào)線(xiàn)所支持的cache功能和JTAG邊界掃描功能,同時(shí)雖然它具有奇偶校驗(yàn)錯(cuò)誤報(bào)告功能引腳,但該腳可以懸空不用。所以,設(shè)計(jì)時(shí)只需考慮第一組功能信號(hào)線(xiàn)的連接即可。

PCI接口的設(shè)計(jì)有以下幾個(gè)要點(diǎn):

(1)PCI總線(xiàn)的仲裁

這里先說(shuō)明兩個(gè)概念。首先,PCI總線(xiàn)是多設(shè)備共享的,由于PC機(jī)里可以有多個(gè)PCI設(shè)備,所以需要使用仲裁器;其次,PCI設(shè)備有主設(shè)備和從設(shè)備之分,主設(shè)備可以發(fā)起PCI數(shù)據(jù)的傳送從設(shè)備只能被動(dòng)地響應(yīng)主設(shè)備的操作以對(duì)讀操作和寫(xiě)操作做出響應(yīng)。PCI的仲裁引腳是REQ和GNT,分別為請(qǐng)求線(xiàn)和授權(quán)線(xiàn),而且只有PCI主設(shè)備有這兩個(gè)引腳。一般情況下,REQ通常和GNT成對(duì)地連到仲裁器,而設(shè)備與設(shè)備的REQ和GNT通常是互不相連的。

PCI總線(xiàn)的仲裁過(guò)程是這樣的:PCI主設(shè)備把REQ電平拉低以表示向仲裁器請(qǐng)求占用總線(xiàn)。經(jīng)仲裁獲準(zhǔn)后,仲裁器把這個(gè)設(shè)備的GNT電平拉低以表示請(qǐng)求獲準(zhǔn),此后該設(shè)備便可以使用總線(xiàn)了。當(dāng)它不再使用總線(xiàn)時(shí),應(yīng)使REQ信號(hào)變?yōu)楦唠娖舰熤俨闷骶筒辉俳o它分配總線(xiàn)資源。在本系統(tǒng)中,TM1300是PCI主設(shè)備,而Realtek8029是PCI從設(shè)備。由于它們不存在共享總線(xiàn)的問(wèn)題,所以不需要仲裁器,而只是簡(jiǎn)單地把REQ和GNT短接即可,這就相當(dāng)于TM1300自己給自己授權(quán)。

(2)PCI_IDSEL信號(hào)線(xiàn)在設(shè)備的PCI配置讀寫(xiě)中的作用

PCI有一種特殊的讀寫(xiě)周期,稱(chēng)為配置讀寫(xiě)。這是因?yàn)樵谙到y(tǒng)引導(dǎo)時(shí),如果沒(méi)有給設(shè)備配置I/O或內(nèi)存地址,軟件就只能通過(guò)配置來(lái)讀寫(xiě)訪問(wèn)設(shè)備。配置讀寫(xiě)有兩種,分別稱(chēng)為0型和1型具體采用哪一種取決于總線(xiàn)的硬件連接。配置讀寫(xiě)操作不經(jīng)過(guò)PCI橋時(shí),使用0型,當(dāng)需要經(jīng)過(guò)PCI橋時(shí),則要用1型,0型讀寫(xiě)的地址直接就是總線(xiàn)上的地址,1型讀寫(xiě)的地址則要經(jīng)過(guò)PCI橋的譯碼才能成為最終的總線(xiàn)地址。本設(shè)計(jì)中,TM1300和Realtek8029是用PCI總線(xiàn)直連的,所以使用0型配置讀寫(xiě)。

AD〔00..31〕是PCI總線(xiàn)的共享地址和數(shù)據(jù)線(xiàn),每一次PCI傳送都分為地址周期和數(shù)據(jù)周期。在地址周期,采用0型讀寫(xiě)時(shí),AD〔00..31〕的內(nèi)容如下,AD〔00〕和AD〔01〕總為“00”,因?yàn)榕渲米x寫(xiě)是以雙字為單位的,AD〔02〕~AD〔07〕是要讀寫(xiě)的PCI配置空間的寄存器號(hào)AD〔08〕~AD〔10〕是設(shè)備的功能號(hào)在一塊PCI卡上有多個(gè)功能設(shè)備時(shí),為了進(jìn)一步區(qū)分不同的設(shè)備就要用到這幾位,由于Realtek8029是單功能設(shè)備,故這幾位全為0,AD〔11〕~AD〔31〕是設(shè)備選擇位,其中必須有且僅有一位為“1”,如圖2所示,這在物理上表現(xiàn)為總線(xiàn)的AD〔11〕~AD〔31〕中有一根為高電平如果輸出高電平的這根線(xiàn)與某塊PCI卡的PCIIDSEL引腳相連,這塊卡就會(huì)被激活,這樣,在緊接著的數(shù)據(jù)周期中,它就會(huì)將其PCI配置空間相應(yīng)寄存器中的內(nèi)容放到總線(xiàn)上以供讀取。

(3)PCI_FRAME、PCI_DEVSEL、PCI_IRDY、PCI_TRDY引腳的處理

上述四個(gè)引腳均是低電平有效,因此需要接上拉電阻,以保證在設(shè)備未驅(qū)動(dòng)該引腳時(shí)處于穩(wěn)定的無(wú)效狀態(tài),上拉電阻的阻值在1kΩ~10kΩ范圍內(nèi),阻值越小,則將該信號(hào)驅(qū)動(dòng)為有效的時(shí)間越短,但太小又會(huì)導(dǎo)致電流過(guò)大,所以,要權(quán)衡考慮,本設(shè)計(jì)選用4.7kΩ。

上述三點(diǎn)對(duì)脫機(jī)情況下PCI設(shè)備的互連具有較普遍的參考意義,除此之外,本設(shè)計(jì)還有以下比較特殊的幾點(diǎn):

應(yīng)將TM1300的PCI,INTA引腳配置為輸入,以便接收Realtek8029的中斷;

PCI時(shí)鐘由TM1300提供;

Realtek8029的復(fù)位信號(hào)也就是TM1300的復(fù)位信號(hào),該信號(hào)由外部電路提供;

TM1300的PCISTOP、PCISERR引腳懸空,表示Realtek8029不具備相應(yīng)的附加功能。另外,TM1300的PCIINTB、PCIINTC、PCIINTD引腳可以用作用戶(hù)中斷。

3軟件設(shè)計(jì)

該接口設(shè)計(jì)的軟件結(jié)構(gòu)框圖如圖3所示。其中TM1300運(yùn)行于pSOS,它是一個(gè)簡(jiǎn)單的實(shí)時(shí)多任務(wù)嵌入式操作系統(tǒng),帶有pNA+網(wǎng)絡(luò)組件,其pNA+相當(dāng)于TCP/IP協(xié)議棧的擴(kuò)展,它向上可提供應(yīng)用程序編程的socket接口,向下可定義一個(gè)與網(wǎng)絡(luò)接口層交互的接口,其中包括8個(gè)函數(shù),分別是:ni_init(接口芯片初始化)、ni_broad-cast(發(fā)送廣播分組)、ni_send(發(fā)送普通分組)、ni_getpkb(申請(qǐng)發(fā)送緩沖區(qū))、ni_retpkb(歸還接收緩沖區(qū))、ni_ioctl(I/O控制操作)、ni_pool(統(tǒng)計(jì)量查詢(xún))、Announce(網(wǎng)絡(luò)接口驅(qū)動(dòng)調(diào)用它把接收到的數(shù)據(jù)包提交給pSOS)。其中網(wǎng)絡(luò)接口層在本應(yīng)用中就是Realtek8029的驅(qū)動(dòng)程序,它通過(guò)硬件抽象層來(lái)驅(qū)動(dòng)Realtek8029(硬件抽象層是PCI總線(xiàn)的配置讀寫(xiě)和I/O讀寫(xiě)指令集的總稱(chēng))。

軟件執(zhí)行的流程大致是:系統(tǒng)首先啟動(dòng)pSOS,并由它加載網(wǎng)絡(luò)接口驅(qū)動(dòng)程序,然后調(diào)用驅(qū)動(dòng)程序的ni_init函數(shù),同時(shí)初始化Realtek8029的PCI配置空間并設(shè)置Realtek8029的工作參數(shù),之后啟動(dòng)用戶(hù)任務(wù)。在這里,用戶(hù)任務(wù)為H.263編碼進(jìn)程。它對(duì)VI口讀入的源圖像進(jìn)行壓縮編碼后,將調(diào)用socket的接口函數(shù)sendto(sendto是UDP套接口專(zhuān)用的發(fā)送函數(shù)),然后把碼流發(fā)送給pSOS由pSOS根據(jù)UDP協(xié)議進(jìn)行封裝后,再調(diào)用ni_send函數(shù),并由ni_send完成數(shù)據(jù)包從系統(tǒng)主內(nèi)存到Realtek8029片上RAM的拷貝,然后啟動(dòng)Realtek8029發(fā)送數(shù)據(jù)。在接收情況下,Realtek8029收到一個(gè)完整的數(shù)據(jù)包后會(huì)用中斷通知CPU,然后由CPU執(zhí)行中斷服務(wù)程序。當(dāng)中斷服務(wù)程序?qū)?shù)據(jù)包從Realtek8029片上RAM中拷貝到系統(tǒng)的主內(nèi)存后,系統(tǒng)將調(diào)用Announce函數(shù)并把數(shù)據(jù)塊的指針、數(shù)據(jù)長(zhǎng)度和其它信息提交pSOS,最后由pSOS將數(shù)據(jù)包沿協(xié)議棧一層層上傳并作出相應(yīng)的處理。

軟件的設(shè)計(jì)和pSOS操作系統(tǒng)的關(guān)系比較密切,限于篇幅,本文不對(duì)pSOS作詳細(xì)介紹,。本文接下來(lái)重點(diǎn)介紹PCI配置空間的配置過(guò)程,這部分對(duì)于類(lèi)似的設(shè)計(jì)有較普遍的參考意義。PCI配置空間有64個(gè)字節(jié),PCI片內(nèi)的這些寄存器存儲(chǔ)了該芯片的廠商號(hào)、設(shè)備號(hào)、設(shè)備類(lèi)型等重要代碼,還包括命令寄存器、基地址寄存器等控制其總線(xiàn)行為的寄存器,它們必須在設(shè)備初始化時(shí)正確配置,否則設(shè)備不能工作。

對(duì)Realtek8029PCI空間的配置需要三個(gè)步驟:

首先是掃描總線(xiàn),這一步的目的是找到Real-tek8029的配置地址,直觀地講,就是找到它的PCI_IDSEL引腳和哪根AD線(xiàn)相連,因?yàn)楹罄m(xù)的配置寫(xiě)要根據(jù)這個(gè)地址來(lái)尋址。掃描總線(xiàn)時(shí),要對(duì)AD〔11〕到AD〔31〕每根線(xiàn)進(jìn)行一次掃描,如果哪根AD線(xiàn)連接了一個(gè)PCI設(shè)備的PCIIDSEL引腳,那么用配置讀函數(shù)讀取PCI配置空間的0號(hào)寄存器時(shí),應(yīng)該返回該設(shè)備的設(shè)備和廠商代碼,如果這根線(xiàn)實(shí)際未連接設(shè)備,則返回值是0。已知Realtek8029的設(shè)備和廠商代碼是“0x802910ec”,如果返回值與之相同,說(shuō)明找到了Realtek8029,這時(shí)要記下這根AD線(xiàn)的序號(hào)。例如,在硬件上把Realtek8029的PCIIDSEL和AD〔20〕相連,則掃描到的序號(hào)就應(yīng)該是“20”。

其次,用配置寫(xiě)函數(shù)配置I/O讀寫(xiě)使能,即在command寄存器中寫(xiě)入“0x1”。

最后,用配置寫(xiě)函數(shù)配置I/O地址,也就是在I/OBaseAdddress寄存器寫(xiě)入分配給該設(shè)備的I/O地址(例如“0xe400”)。具體程序流程圖如圖4所示。

4調(diào)試結(jié)果

根據(jù)以上設(shè)計(jì),筆者在原TM1300視頻編碼硬件系統(tǒng)的基礎(chǔ)上加入了PCI接口,并編寫(xiě)了pSOS下Realtek8029的驅(qū)動(dòng)程序。然后,在這個(gè)硬件平臺(tái)上對(duì)Realtek8029的驅(qū)動(dòng)部分進(jìn)行了數(shù)據(jù)傳送測(cè)試。

筆者首先用一個(gè)單獨(dú)的UDP發(fā)送任務(wù)進(jìn)行發(fā)送速率測(cè)試。這個(gè)任務(wù)主要是高速地向網(wǎng)絡(luò)上的一臺(tái)PC發(fā)送數(shù)據(jù)包,數(shù)據(jù)包的大小是變長(zhǎng)的。PC接收并對(duì)丟包數(shù)進(jìn)行統(tǒng)計(jì)的結(jié)果如表1所列。實(shí)驗(yàn)表明,在用網(wǎng)線(xiàn)直連的各種測(cè)試速率情況下都沒(méi)有出錯(cuò),而當(dāng)接入局域網(wǎng)后,在發(fā)送速率為4.5Mbps時(shí)有突發(fā)的少量錯(cuò)誤。由于UDP是不可靠的傳輸方式,所以這種錯(cuò)誤是正常的。測(cè)試中,UDP發(fā)送的最高速率可以達(dá)到5Mbps左右,它與硬件的最高速率(10Mbps)相比還有一定差距,主要原因是數(shù)據(jù)從系統(tǒng)主內(nèi)存到Realtek8029片上RAM的拷貝過(guò)程目前尚未采用DMA方式,這是需要改進(jìn)的地方。

表1丟包數(shù)統(tǒng)計(jì)表(單位:丟包個(gè)數(shù)/分鐘)

連接方式發(fā)送速率

800kbps1.8Mbps4.5Mbps

網(wǎng)絡(luò)直連000

接入局域網(wǎng)002.5

接下來(lái)筆者進(jìn)行了編碼和傳送的聯(lián)合測(cè)試。編碼任務(wù)執(zhí)行H.263數(shù)據(jù)壓縮后,把碼流從以太網(wǎng)接口發(fā)出,然后在網(wǎng)絡(luò)上的另一臺(tái)PC上接收這個(gè)碼流,并進(jìn)行解碼播放。通過(guò)調(diào)整編碼器的量化步長(zhǎng)可以控制編碼的輸出碼率。在實(shí)驗(yàn)環(huán)境下發(fā)現(xiàn)在量化步長(zhǎng)大于等于5、碼率在700kbps以下時(shí),基本沒(méi)有丟包現(xiàn)象,解碼得到的圖像比較穩(wěn)定,而當(dāng)量化步長(zhǎng)進(jìn)一步減小,碼率接近1Mbps時(shí),就會(huì)出現(xiàn)丟包現(xiàn)象,解碼的圖像會(huì)出現(xiàn)彩色方塊。出現(xiàn)這種現(xiàn)象是因?yàn)镠.263編碼器對(duì)CPU資源的消耗很大,而且數(shù)據(jù)在主內(nèi)存和Realtek8029片上RAM之間的復(fù)制采用I/O讀寫(xiě)方式也需要一定的CPU資源。這樣,當(dāng)量化步長(zhǎng)小于5時(shí),處理的復(fù)雜度超過(guò)了CPU的能力從而產(chǎn)生了一定的誤碼。解決的途徑一方面是改進(jìn)數(shù)據(jù)的傳送方式(采用DMA),另一方面是需要對(duì)編碼任務(wù)進(jìn)行優(yōu)化。

篇(5)

2:吉林省森工集團(tuán)信息化發(fā)展前景與規(guī)劃.

3: 吉林省林業(yè)設(shè)計(jì)院網(wǎng)絡(luò)中心網(wǎng)絡(luò)改造與發(fā)展規(guī)劃.

4: 吉林省林業(yè)系統(tǒng)生態(tài)信息高速公路構(gòu)建課題.

二、論文撰寫(xiě)與設(shè)計(jì)研究的目的:

吉林省的林業(yè)分布十分廣泛,以長(zhǎng)白山系為主要脈絡(luò)的山地廣泛分布各種森林資源,而作為林業(yè)及林業(yè)環(huán)境的發(fā)展,林業(yè)生態(tài)信息則是一個(gè)更為龐大的系統(tǒng),快捷,準(zhǔn)確,合理,系統(tǒng)的采集,處理,分析,存儲(chǔ)這些信息是擺在我們面前的十分現(xiàn)實(shí)的問(wèn)題.在信息交流的這個(gè)世界中,信息好比貨物,我們需要將這些貨物(信息)進(jìn)行合理的處理,其中以硬件為主的計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)是這些貨物(信息)交流的"公路"和"處理廠",我做這個(gè)題目,就是要為它畫(huà)出一條"公路"和若干"處理方法"的藍(lán)圖.

由于森工集團(tuán)這樣的特定企業(yè),其一,它是一個(gè)統(tǒng)一管理的企業(yè),具有集團(tuán)化的特點(diǎn),網(wǎng)絡(luò)的構(gòu)建具有統(tǒng)一性.其二,它又在地理上是一個(gè)分散的企業(yè),網(wǎng)絡(luò)點(diǎn)也具有分散性.然而,分散中還具有集中的特點(diǎn),它的網(wǎng)絡(luò)系統(tǒng)的設(shè)計(jì)就應(yīng)該是板塊化的.從信息的角度來(lái)講,信息的種類(lèi)多,各種信息的采集傳輸處理角度也不盡相同,我們?cè)谠O(shè)計(jì)的過(guò)程中不僅要考慮硬件的地域布局,也要考慮軟件平臺(tái)的配合.

沒(méi)有最好,只有更好;更新觀念,大步向前.我相信,在導(dǎo)師的精心指導(dǎo)下,經(jīng)過(guò)我的努力,我將為它們創(chuàng)造出一條平坦,寬闊的"高速公路".

1,論文(設(shè)計(jì))研究的對(duì)象:

擬訂以吉林省林業(yè)系統(tǒng)為地理模型,以林業(yè)網(wǎng)絡(luò)綜合服務(wù)為基本需求,以網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)為設(shè)計(jì)方向,以軟件整合為應(yīng)用方法,開(kāi)發(fā)設(shè)計(jì)一套完整的基于集散集團(tuán)企業(yè)的企業(yè)網(wǎng)絡(luò)系統(tǒng).

2,論文(設(shè)計(jì))研究預(yù)期達(dá)到目標(biāo):

通過(guò)設(shè)計(jì),論文的撰寫(xiě),預(yù)期達(dá)到網(wǎng)絡(luò)設(shè)計(jì)全面化,軟件整合合理化,網(wǎng)絡(luò)性能最優(yōu)化,資金應(yīng)用最低化,工程周期最短化的目標(biāo).

3,論文(設(shè)計(jì))研究的內(nèi)容:

一),主要問(wèn)題:

設(shè)計(jì)解決網(wǎng)絡(luò)地域規(guī)范與現(xiàn)有網(wǎng)絡(luò)資源的利用和開(kāi)發(fā).

設(shè)計(jì)解決集中單位的網(wǎng)絡(luò)統(tǒng)一部署.

設(shè)計(jì)解決多類(lèi)型網(wǎng)絡(luò)的接口部署.

設(shè)計(jì)解決分散網(wǎng)絡(luò)用戶(hù)的接入問(wèn)題.

設(shè)計(jì)解決遠(yuǎn)程瘦用戶(hù)網(wǎng)絡(luò)分散點(diǎn)的性能價(jià)格合理化問(wèn)題.

設(shè)計(jì)解決具有針對(duì)性的輸入設(shè)備的自動(dòng)化信息采集問(wèn)題.

合理部署網(wǎng)絡(luò)服務(wù)中心的網(wǎng)絡(luò)平衡.

優(yōu)化網(wǎng)絡(luò)服務(wù)系統(tǒng),營(yíng)造合理的網(wǎng)絡(luò)平臺(tái).

網(wǎng)絡(luò)安全問(wèn)題.

10,基本應(yīng)用軟件整合問(wèn)題.

[nextpage]

二),論文(設(shè)計(jì))包含的部分:

1,地理模型與網(wǎng)絡(luò)模型的整合.

2,企業(yè)內(nèi)部集中部門(mén)網(wǎng)絡(luò)設(shè)計(jì).

3,企業(yè)內(nèi)部分散單元網(wǎng)絡(luò)設(shè)計(jì)——總體分散.

4,企業(yè)內(nèi)部分散單元網(wǎng)絡(luò)設(shè)計(jì)——遠(yuǎn)程結(jié)點(diǎn).

5,企業(yè)內(nèi)部分散單元網(wǎng)絡(luò)設(shè)計(jì)——移動(dòng)結(jié)點(diǎn).

6,企業(yè)網(wǎng)絡(luò)窗口(企業(yè)外信息交流)設(shè)計(jì).

7,企業(yè)網(wǎng)絡(luò)中心,服務(wù)平臺(tái)的設(shè)計(jì).

8,企業(yè)網(wǎng)絡(luò)基本應(yīng)用軟件結(jié)構(gòu)設(shè)計(jì).

9,企業(yè)網(wǎng)絡(luò)特定終端接點(diǎn)設(shè)計(jì).

10,企業(yè)網(wǎng)絡(luò)整合設(shè)計(jì).

5,論文(設(shè)計(jì))的實(shí)驗(yàn)方法及理由:

由于設(shè)計(jì)的過(guò)程并不是工程的施工過(guò)程,在設(shè)計(jì)過(guò)程中詳盡的去現(xiàn)場(chǎng)建設(shè)肯定有很大的難度,也不是十分可行的,那么我們?cè)谠O(shè)計(jì)的階段就應(yīng)該進(jìn)行仿真試驗(yàn)和科學(xué)計(jì)算.第一步,通過(guò)小型網(wǎng)絡(luò)測(cè)試軟件平臺(tái),第二步,構(gòu)建多個(gè)小型網(wǎng)絡(luò)搭建全局網(wǎng)絡(luò)模擬環(huán)境,第三步,構(gòu)建干擾源利用小型網(wǎng)絡(luò)集總仿真測(cè)試.

6,論文(設(shè)計(jì))實(shí)施安排表:

1.論文(設(shè)計(jì))階段第一周次:相關(guān)理論的學(xué)習(xí)研究,閱讀參考文獻(xiàn)資料,制訂課題研究的實(shí)施方案,準(zhǔn)備試驗(yàn)用網(wǎng)絡(luò)硬件和軟件形成試驗(yàn)程序表及試驗(yàn)細(xì)則.

2.論文(設(shè)計(jì))階段第二周次:開(kāi)始第一輪實(shí)驗(yàn),進(jìn)行小型網(wǎng)絡(luò)構(gòu)建試驗(yàn),模擬網(wǎng)絡(luò)服務(wù)中心,模擬區(qū)域板塊,模擬遠(yuǎn)程及移動(dòng)網(wǎng)絡(luò).

3.論文(設(shè)計(jì))階段第三周次:進(jìn)行接口模擬試驗(yàn),測(cè)試軟件應(yīng)用平臺(tái),完善課題研究方案.

4.論文(設(shè)計(jì))階段第四周次:完成第一輪實(shí)驗(yàn),提交中期成果(實(shí)驗(yàn)報(bào)告1).

5.論文(設(shè)計(jì))階段第五周次:進(jìn)行第二輪實(shí)驗(yàn),模擬環(huán)境(干擾仿真)實(shí)驗(yàn),提交實(shí)驗(yàn)報(bào)告2.

6.論文(設(shè)計(jì))階段第六周次:完成結(jié)題報(bào)告,形成論文.

三,論文(設(shè)計(jì))實(shí)施工具及參考資料:

小型網(wǎng)絡(luò)環(huán)境,模擬干擾環(huán)境,軟件平臺(tái).

吳企淵《計(jì)算機(jī)網(wǎng)絡(luò)》.

鄭紀(jì)蛟《計(jì)算機(jī)網(wǎng)絡(luò)》.

陳濟(jì)彪 丹青 等 《計(jì)算機(jī)局域網(wǎng)與企業(yè)網(wǎng)》.

christian huitema 《因特網(wǎng)路由技術(shù)》.

[美]othmar kyas 《網(wǎng)絡(luò)安全技術(shù)——風(fēng)險(xiǎn)分析,策略與防火墻》.

其他相關(guān)設(shè)備,軟件的說(shuō)明書(shū).

1、論文(設(shè)計(jì))的創(chuàng)新點(diǎn):

努力實(shí)現(xiàn)網(wǎng)絡(luò)資源的全面應(yīng)用,擺脫將單純的網(wǎng)絡(luò)硬件設(shè)計(jì)為企業(yè)網(wǎng)絡(luò)設(shè)計(jì)的模式,大膽實(shí)踐將軟件部署與硬件設(shè)計(jì)階段相整合的網(wǎng)絡(luò)設(shè)計(jì)方法.

題目可行性說(shuō)明及預(yù)期成果:

篇(6)

黃統(tǒng)奎,張艷紅

(廣東技術(shù)師范學(xué)院 天河學(xué)院,廣東 廣州 510540)

摘要:該文研究基于Struts2 + Spring + Hibernate的高校畢業(yè)設(shè)計(jì)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)按照畢業(yè)設(shè)計(jì)工作流程實(shí)現(xiàn)管理端,教師端,學(xué)生端相應(yīng)的功能。重點(diǎn)實(shí)現(xiàn)了業(yè)務(wù)流程管理、用戶(hù)權(quán)限管理、選題管理、文檔管理、文檔在線(xiàn)編輯、成績(jī)?cè)u(píng)定、在線(xiàn)交流、數(shù)據(jù)備份等功能。該系統(tǒng)具有界面簡(jiǎn)潔、易用性強(qiáng),交互性好、功能完善、同時(shí)又考慮到數(shù)據(jù)安全和系統(tǒng)功能的擴(kuò)充。

關(guān)鍵詞: Struts2;Spring;Hibernate;畢業(yè)設(shè)計(jì);文檔管理

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)19-4384-03

1 課題背景

隨著大學(xué)的擴(kuò)招,畢業(yè)生數(shù)量的逐年遞增,高校畢業(yè)設(shè)計(jì)教學(xué)活動(dòng)中需要處理的數(shù)據(jù)和信息也越來(lái)越大,在畢業(yè)設(shè)計(jì)管理工作中遇到工作效率低,交互性差,工作量大等問(wèn)題,這已經(jīng)成為高校每年畢業(yè)設(shè)計(jì)管理過(guò)程中急需處理的問(wèn)題。同時(shí)課題資源過(guò)于零散,容易重復(fù), 進(jìn)一步加大了課題資源整合的難度。綜上所述,該文研究基于 Java EE的高校畢業(yè)設(shè)計(jì)管理系統(tǒng),使用該系統(tǒng)實(shí)現(xiàn)快捷高效的畢業(yè)設(shè)計(jì)管理工作。

2 系統(tǒng)分析

通過(guò)需求分析,系統(tǒng)確定有三種角色:學(xué)生、教師、管理員。

2.1功能模塊劃分

在具體設(shè)計(jì)實(shí)現(xiàn)畢業(yè)設(shè)計(jì)管理系統(tǒng)時(shí),主要考慮了系統(tǒng)的以下主要功能和模塊。

1) 公用模塊

(1) 登錄模塊:驗(yàn)證帳號(hào)密碼是否正確。

(2) 修改個(gè)人信息模塊:修改賬號(hào)密碼。

(3) 師生互動(dòng)模塊:師生交流平臺(tái)。

(4) 瀏覽信息模塊:查看信息。

2) 畢業(yè)生模塊

(1) 選報(bào)課題模塊:選擇指導(dǎo)老師與課題。

(2) 上傳論文模塊:上傳各階段的論文。

(3) 下載文件模塊:下載指導(dǎo)老師的資料。

3) 指導(dǎo)教師模塊

(1) 申報(bào)課題模塊:申報(bào)自己的課題。

(2) 分配課題模塊:選擇畢業(yè)生與其對(duì)應(yīng)的課題。

(3) 上傳論文模塊:上傳各個(gè)階段的論文。

(4) 審批論文模塊:審批上傳的論文。

(5) 下載文件模塊:下載畢業(yè)生上傳資料。

4) 管理員模塊

(1) 公告模塊:信息。

(2) 課題管理模塊:管理課題。

(3) 賬號(hào)管理模塊:管理畢業(yè)生與指導(dǎo)教師賬號(hào)。

(4) 日常維護(hù)模塊:數(shù)據(jù)庫(kù)備份還原。

2.2業(yè)務(wù)流程圖

2.2.1 管理員業(yè)務(wù)流程圖

管理員定期對(duì)系統(tǒng)的信息進(jìn)行更新和維護(hù),可以對(duì)公告、課題、帳號(hào)信息進(jìn)行查看、增加、修改、刪除等操作,以及配置系統(tǒng)的參數(shù)。業(yè)務(wù)流程圖如圖1所示。

圖1 管理員業(yè)務(wù)流程圖

圖2 教師業(yè)務(wù)流程圖

2.2.2 教師業(yè)務(wù)流程圖

教師登錄系統(tǒng)后,可以對(duì)課題進(jìn)行管理,審核選題信息。教師可以查看學(xué)生的選題情況和學(xué)生個(gè)人信息,并確定是否錄用學(xué)生提交的課題。在選題完畢之后,教師可以在系統(tǒng)中批閱該課題的上交文件,并給出評(píng)價(jià)及評(píng)分。業(yè)務(wù)流程圖如上圖2所示。

2.2.3 學(xué)生業(yè)務(wù)流程圖

學(xué)生登錄系統(tǒng)后,可以查看公告,修改個(gè)人資料。學(xué)生在選題中,可以自由選擇教師及其提供的課題,也可以自己選取導(dǎo)師并自定義課題。選題后,學(xué)生允許提交各個(gè)時(shí)期的文檔文件,并將上傳信息顯示在教師端界面。學(xué)生的業(yè)務(wù)流程圖如圖3所示。

圖3 學(xué)生業(yè)務(wù)流程圖

3 詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)

為了系統(tǒng)開(kāi)發(fā)以及后期的維護(hù)更方便和明確,實(shí)現(xiàn)對(duì)項(xiàng)目的分割,將項(xiàng)目分為DAO、Service、Action層。根據(jù)面向?qū)ο笏枷?,建立?shí)體類(lèi),實(shí)現(xiàn)實(shí)體關(guān)系,將后臺(tái)的數(shù)據(jù)表映射出來(lái)到這實(shí)體類(lèi)中,提供給DAO、Service、Action層使用。

在web.xml添加Struts、Spring、Hibernate的filter和listener。在WEB-INF文件夾里面編寫(xiě)Spring的application.xml,整合Spring和Hibernate,實(shí)現(xiàn)Spring的IoC和AOP功能。將spring與struts的整合在一起,使用了自動(dòng)掃描技術(shù)和注解的方式為每個(gè)類(lèi)自動(dòng)配置映射文件,使得程序的可讀性變強(qiáng)。

利用Hibernate編寫(xiě)DAO層,為每個(gè)模塊建立DAO接口,在接口中實(shí)現(xiàn)了增刪改查等方法,實(shí)現(xiàn)JAVA與數(shù)據(jù)庫(kù)的數(shù)據(jù)交互,供Service層調(diào)用。

為每個(gè)模塊建立獨(dú)立的Service接口,每個(gè)接口將實(shí)現(xiàn)不同模塊的邏輯。Service層是實(shí)現(xiàn)系統(tǒng)業(yè)務(wù)邏輯的接口。利用之前編寫(xiě)的DAO層的接口,編寫(xiě)Service層,實(shí)現(xiàn)業(yè)務(wù)邏輯。合理規(guī)劃Service的分類(lèi),在進(jìn)行系統(tǒng)維護(hù)時(shí)會(huì)非常便利。

Action層用于處理頁(yè)面信息,根據(jù)不同的處理結(jié)果返回不同的頁(yè)面到客戶(hù)端。設(shè)計(jì)Action層,調(diào)用Service層方法進(jìn)行邏輯處理,然后根據(jù)處理結(jié)果為客戶(hù)端返回頁(yè)面,最后對(duì)界面進(jìn)行美化。實(shí)現(xiàn)過(guò)程如下:

在創(chuàng)建具體的Action時(shí),應(yīng)當(dāng)先創(chuàng)建抽象類(lèi)BaseAction,繼承Struts2中的ActionSupport抽象類(lèi),聲明一個(gè)map變量session,這樣以后每當(dāng)實(shí)現(xiàn)一個(gè)Action,只要繼承BaseAction,便可使用到session進(jìn)行權(quán)限控制。同時(shí)也要?jiǎng)?chuàng)建PageAction,繼承Struts2中的ActionSupport抽象類(lèi),并在該類(lèi)中聲明一個(gè)分頁(yè)技術(shù)所需要的參數(shù),包括了記錄總條目、當(dāng)前頁(yè)碼和總的頁(yè)數(shù)等參數(shù)。

客戶(hù)端每向服務(wù)器提交一次請(qǐng)求,都會(huì)先被相應(yīng)的攔截器(interceptor)攔截并進(jìn)行校驗(yàn),攔截器會(huì)檢驗(yàn)session中的key為actor保存的對(duì)象是哪一個(gè)對(duì)象(Admin、Teacher、Student),若滿(mǎn)足攔截器的通過(guò)條件,將允許繼續(xù)進(jìn)行操作,否則將強(qiáng)制跳轉(zhuǎn)到登陸頁(yè)。不同的Action將根據(jù)設(shè)計(jì)時(shí)規(guī)劃好的權(quán)限設(shè)置不同的攔截器。

在線(xiàn)word文件的預(yù)覽功能,使用的是PreviewAction里面的默認(rèn)方法獲取當(dāng)前的文件內(nèi)容,通過(guò)里面的execute方法將內(nèi)容在pageOffice的插件上顯示出來(lái),并且如果我們修改里面的內(nèi)容后直接通過(guò)插件的poCtrl1.setSaveFilePage()方法將數(shù)據(jù)保存起來(lái)。那么下次我們點(diǎn)開(kāi)文件就可以看到保存后的最新內(nèi)容。

數(shù)據(jù)管理功能,所要調(diào)用到的是DataManageAction里面的execute方法跳轉(zhuǎn)到數(shù)據(jù)管理界面。其中每當(dāng)我們點(diǎn)擊備份時(shí),我們將數(shù)據(jù)庫(kù)名、登陸賬號(hào)、密碼、安裝路徑等參數(shù)傳遞給DataManageAction里面的backup方法,將數(shù)據(jù)進(jìn)行備份出來(lái)并彈出備份是否成功的提醒消息,然后將數(shù)據(jù)庫(kù)還原時(shí),我們需要先選擇備份的文件,最后將頁(yè)面的參數(shù)傳遞給DataManageAction里面的restore方法,將數(shù)據(jù)還原并彈出是否還原成功消息。

日志管理功能,所調(diào)用到的是LogManageAction里面的execute方法跳轉(zhuǎn)到日志管理界面。其中當(dāng)我們點(diǎn)擊“導(dǎo)出日志”時(shí),我們將調(diào)用LogManageAction里面的export方法,將服務(wù)器上項(xiàng)目的HTK.log日志文件以流的形式將其下載到客戶(hù)端,并彈出保存的窗口讓用戶(hù)選擇存放的路徑。當(dāng)我們點(diǎn)擊“清空日志”時(shí),那么程序?qū)?huì)調(diào)用LogManageAction里面的clean方法,將服務(wù)器上的HTK.log日志文件里面的內(nèi)容清空并彈出清空成功消息。

4 總結(jié)

設(shè)計(jì)難點(diǎn):保證上傳信息的導(dǎo)入正確的添加到后臺(tái)數(shù)據(jù)庫(kù)中,對(duì)導(dǎo)入的xls文件是通過(guò)暫存在服務(wù)器讀取還是直接從客戶(hù)端讀取。評(píng)分功能中,如何確定角色并且實(shí)現(xiàn)正確評(píng)分。在進(jìn)行系統(tǒng)詳細(xì)設(shè)計(jì)時(shí),必須從一個(gè)宏觀的角度,考慮某一功能模塊設(shè)計(jì)會(huì)不會(huì)對(duì)其他的功能模塊造成不良影響。本系統(tǒng)設(shè)計(jì)中充分考慮到數(shù)據(jù)安全性和功能的可擴(kuò)展性,按照軟件測(cè)試流程完成了軟件測(cè)試,確保系統(tǒng)最終滿(mǎn)足用戶(hù)需求。

參考文獻(xiàn):

篇(7)

1.1.數(shù)據(jù)格式

宏觀經(jīng)濟(jì)數(shù)據(jù)是多樣式顯示功能的基礎(chǔ)數(shù)據(jù)。就目前來(lái)看,宏觀經(jīng)濟(jì)主要的來(lái)源是統(tǒng)計(jì)報(bào)表、城市卡片和縣卡片。另外,基本單位匯總數(shù)據(jù)、人口普查匯總數(shù)據(jù)也是宏觀經(jīng)濟(jì)數(shù)據(jù)的一部分。基本年鑒數(shù)據(jù)一般是報(bào)表數(shù)據(jù)經(jīng)過(guò)處理后的結(jié)果,年鑒數(shù)據(jù)在統(tǒng)計(jì)局的業(yè)務(wù)位置不是很重要,但年鑒數(shù)據(jù)也是將來(lái)系統(tǒng)中可能需要處理的一部分,應(yīng)該也作為一種宏觀經(jīng)濟(jì)的數(shù)據(jù)來(lái)源來(lái)考慮。

宏觀經(jīng)濟(jì)數(shù)據(jù)的組織形式是多種多樣的,但透過(guò)復(fù)雜的數(shù)據(jù)組織結(jié)構(gòu),它們也存在著共性,就是每一個(gè)統(tǒng)計(jì)數(shù)據(jù)都可以通過(guò)空間、時(shí)間、指標(biāo)來(lái)確定,用數(shù)據(jù)庫(kù)的語(yǔ)言描述就是可以分為地址碼字段、時(shí)間字段、指標(biāo)字段,只要數(shù)據(jù)表中存在這幾個(gè)字段,就可以完整的描述統(tǒng)計(jì)數(shù)據(jù)。

系統(tǒng)的宏觀經(jīng)濟(jì)數(shù)據(jù)存儲(chǔ)在SQLServer2005中,表1為典型的宏觀經(jīng)濟(jì)數(shù)據(jù)表結(jié)構(gòu),其中的地址碼與空間數(shù)據(jù)中的地址碼(DZM)相對(duì)應(yīng),實(shí)現(xiàn)空間數(shù)據(jù)與統(tǒng)計(jì)數(shù)據(jù)的統(tǒng)一。查詢(xún)后的宏觀經(jīng)濟(jì)數(shù)據(jù)如2所示。

1.2.功能需求分析

論文重點(diǎn)研究多地區(qū)、多年、多指標(biāo)的宏觀經(jīng)濟(jì)數(shù)據(jù)查詢(xún)結(jié)果的多種表格方式顯示,具體有以下五種。(1)普通樣式:原始表數(shù)據(jù)顯示(2)地區(qū)分類(lèi)樣式:以地區(qū)為主,顯示各個(gè)時(shí)間的各種指標(biāo)信息。(3)時(shí)間分類(lèi)樣式:以時(shí)間為主,顯示各個(gè)地區(qū)的各種指標(biāo)信息。(4)指標(biāo)分類(lèi)樣式:以各類(lèi)指標(biāo)為主,顯示各個(gè)地區(qū)、不同時(shí)間的信息。(5)時(shí)間-指標(biāo)樣式:以時(shí)間加各類(lèi)指標(biāo)為主,顯示各個(gè)地區(qū)的信息。

2.詳細(xì)功能設(shè)計(jì)

2.1.界面設(shè)計(jì)

多樣式表格顯示模塊需要以上述五種方式顯示數(shù)據(jù)。其中,普通樣式可以直接顯示,不需要進(jìn)行復(fù)雜處理。論文主要論述其他四種樣式,具體顯示效果如圖3所示。如圖1所示,時(shí)間分類(lèi)樣式為跨時(shí)間(年)的多地區(qū)、多指標(biāo)數(shù)據(jù)顯示;地區(qū)分類(lèi)樣式為跨地區(qū)的多時(shí)間(年)、多指標(biāo)數(shù)據(jù)顯示;指標(biāo)分類(lèi)樣式為跨指標(biāo)的多地區(qū)、多時(shí)間(年)數(shù)據(jù)顯示;時(shí)間_指標(biāo)分類(lèi)樣式為時(shí)間+指標(biāo)的多地區(qū)數(shù)據(jù)顯示。

2.2.核心組件設(shè)計(jì)

本身提供了一個(gè)數(shù)據(jù)綁定控件DataGrid[3]。可以直接將數(shù)據(jù)綁定到該控件中來(lái)顯示所有數(shù)據(jù),這樣就避免的使用for循環(huán)實(shí)現(xiàn)數(shù)據(jù)顯示,大大提高了程序的開(kāi)發(fā)效率??傮w上DataGrid控件是一個(gè)二維的數(shù)據(jù)網(wǎng)格,用表格形式顯示數(shù)據(jù)源數(shù)據(jù),并且支持選擇、編輯、刪除、分頁(yè)顯示和排序等功能。但是DataGrid控件只能顯示單列數(shù)據(jù),樣式簡(jiǎn)單。SourceGrid組件具有很強(qiáng)的重繪功能,通過(guò)簡(jiǎn)單的命令,如rowspan=2,就可以實(shí)現(xiàn)跨行顯示。系統(tǒng)基于開(kāi)源組件SourceGrid開(kāi)發(fā)出SuperGrid控件,如圖2所示,可以輕松實(shí)現(xiàn)各種表格的跨行、跨列顯示。

該組件提供了四個(gè)數(shù)據(jù)多樣式顯示接口、一個(gè)數(shù)據(jù)處理接口和五個(gè)數(shù)據(jù)輸出接口,詳細(xì)功能如下所示。>SpanState是實(shí)現(xiàn)跨地區(qū)顯示的接口;>SpanYear是實(shí)現(xiàn)跨時(shí)間顯示的接口;>SpanIndicator是實(shí)現(xiàn)跨指標(biāo)顯示的接口;>IndividualQuery是實(shí)現(xiàn)時(shí)間指標(biāo)樣式的顯示接口;>ReduceDumensionality是實(shí)現(xiàn)降維處理的接口;>ExporHTML是實(shí)現(xiàn)HTML格式輸出的接口;>ExporWord是實(shí)現(xiàn)Word格式輸出的接口;>ExporExcell是實(shí)現(xiàn)Excel格式輸出的接口;>ExporXML是實(shí)現(xiàn)XML格式輸出的接口;>OutPutTable是實(shí)現(xiàn)表格輸出的接口。其中,SpanState、SpanYear、SpanIndicator需要提供統(tǒng)一入口參數(shù),即原始表格信息,表格格式為(DZM、MC、YEAR、I1、……、In)。實(shí)現(xiàn)時(shí)間-指標(biāo)樣式的顯示效果,需要首先對(duì)原始數(shù)據(jù)進(jìn)行降維處理,控件提供ReduceDumensionality方法實(shí)現(xiàn)此功能。

3.結(jié)論