時間:2023-03-22 17:45:14
序論:速發表網結合其深厚的文秘經驗,特別為您篩選了11篇接口技術論文范文。如果您需要更多原創資料,歡迎隨時與我們的客服老師聯系,希望您能從中汲取靈感和知識!
引言
在IBM公司推出PC機時,并行端口已經是PC機的一部分。并口設計之初,是為能代替速度較慢的串行端口驅動當時的高性能點陣式打印機。并口可以同時傳輸8位數據,而串口只能一位一位地傳輸,傳輸速度慢。隨著技術的進步和對傳輸速度要求的提高,最初的標準并行端口即SPP模式的并行端口的速度已不能滿足要求。1994年3月,IEEE1284委員會頒布了IEEE1284標準.IEEE1284標準提供的在主機和外設之間的并口傳輸速度,相對于最初的并行端口快了50~100倍。IEEE1284標準定義了5種數據傳輸模式,分別是兼容模式、半字節模式、字節模式、EPP模式和ECP模式。其中EPP模式、ECP模式為雙向傳輸模式。EPP模式比ECP模式更簡潔、靈活、可靠,在工業界得到了更多的實際應用。本文介紹的一種基于uPSD323X的EPP增強并口的設計核心是,使用uPSD323X內部的CPLD實現EPP接口。
1EPP接口協議介紹
EPP(EnhancedParallelPort,增強并行端口)協議最初是由Intel、Xirocm、Zenith三家公司聯合提出的,于1994年在IEEE1284標準中。EPP協議有兩個標準:EPP1.7和EPP1.9。EPP接口控制信號由硬件自動產品,整個數據傳輸可以在一個ISAI/O周期完成,通信速率能達到500KB/s~2MB/s。
EPP引腳定義如表1所列。
表1EPP接口引腳定義
對應并口引腳EPP信號方向說明
1nWrit輸出指示主機是向外設寫(低電平)還是從外設讀(高電平)
2~9Data0~7輸入/輸出雙向數據總線
10Interrupt輸入下降沿向主機申請中斷
11nWait輸入低電平表示外設準備好傳輸數據,高電平表示數據傳輸完成
12Spare輸入空余線
13Spare輸入空余線
14nDStrb輸出數據選通信號,低電平有效
15Spare輸入空余線
16Ninit輸出初始化信號,低電平有效
17nAStrb輸出地址數據選通信號,低電平有效
18~25GroundGND地線
1.1EPP接口時序
EPP協議定義了4種并口周期:數據寫周期、數據讀周期、地址寫周期和地址讀周期。數據周期用于計算機與外設間傳送數據;地址周期用于傳送地址、通道、命令、控制和狀態等輔助信息。圖1是EPP數據寫的時序圖。圖1中,nIOW信號實際上在進行EPP數據寫時并不會產生,只不過是表示所有的操作都發生在一個I/O周期內。在t1時刻,計算機檢測nWait信號,如果nWait為低,表明外設已經準備好,可以啟動一個EPP周期了。在t2時刻,計算機把nWrite信號置為低,表明是寫周期,同時驅動數據線。在t3時刻,計算機把nDataStrobe信號置為低電平,表明是數據周期。當外設在檢測到nDataStrobe為低后讀取數據并做相應的數據處理,且在t4時刻把nWait置為高,表明已經讀取數據,計算機可以結束該EPP周期。在t5和t6時刻,計算機把nDataStrobe和nWrite置為高。這樣,一個完整的EPP數據寫周期就完成了。如果就圖1中的nDataStrobe信號換為nAddStrobe信號,就是EPP地址寫周期。
圖2是EPP地址讀周期。與EPP寫周期類似,不同的是nWtrite信號置為高,表明是讀周期,并且數據線由外設驅動。
從EPP讀、寫周期可以看出,EPP模式的數據傳輸過程是一個信號互鎖的過程。以EPP寫周期為例子,當檢測到nWait為低后,nDataStrobe控制信號就會變低,nWait狀態信號會由于nDataStrobe控制信號的變低為而高。當計算機檢測到
nWait狀態信號變高后,nDataStrobe控制信號就會變高,一個完整的EPP寫周期結束。因此,EPP數據的傳輸以接口最慢的設備來進行,可以是主機,也可以是外設。
1.2EPP增強并口的定義
EPP增強并口模式使用與標準并口(SPP,StandardParalledPort)模式相同的基地址,定義了8個I/O地址。基地址+0是SPP數據口,基地址+1是SPP狀態口,基地址+2是SPP控制口。這3個口實際上就是SPP模式下的數據、狀態和控制口,保證了EPP模式和SPP模式的軟硬件兼容性。
基地址+3是EPP地址口。這個I/O口中寫數據將產生一個連鎖的EPP地址寫周期,從這個I/O口中讀數據將產生一個連鎖的EPP地址讀周期。在不同的EPP應用系統中,EPP地址口可以根據實際需要設計為設備選擇、通道選擇、控制寄存器、狀態信息等。給EPP應用系統提供了極大的靈活性。
基地址+4是EPP數據口。向這個I/O口中寫數據將產生一個連鎖的EPP數據寫周期,從這個I/O口讀數據將產生一個連鎖的EPP數據寫周期?;刂?5~+7與基地址+4一起提供對EPP數據口的雙字操作能力。EPP允許主機在此個時鐘周期內寫1個32位雙字,EPP電路再把32位雙字拆為個字節依次從EPP數據口中送出去。也可以用其所長6位字方式進行數據傳送。
由于EPP通過硬件自動握手,對EPP地址口和EPP數據口的讀寫操作都自動產生控制信號而無需軟件生成。
2uPSD323X及其開發環境PSDsoftEXPRESS
ST公司的uPSD323X是帶8032內核的Flash可編程系統器件,將于8032MCU、地址鎖存器、Flash、SRAM、PLD等集成在一個芯片內。其主要特點如下:具有在線編程能力和超強的保密功能;2片Flash保存器,1片是128K或者256K的主Flash存儲器,另一片是32K的從Flash存儲器;片內8K的SDRAM;可編程的地址解碼電路(DPLD),使存儲器地址可以映射到8032尋址范圍內的任何空間;帶有16位宏單元的3000門可編程邏輯電路(CPLD),可以實現EPP接口等及一些不太復雜的接口和控制功能;2個異步串口、I2C接口、USB接口、5通道脈沖寬度調節器、50個I/O引腳等。由于uPSD323X采用的是8032內核,因此可以完全得到KeilC51編程器的PSDsoftEXPRESS是ST公司針對PSD系列產品(包括uPSD)開發的基于Windows平臺的一套軟件開發環境。經過不斷升級,目前最新版是PSDsoftEXPRESS7.9。它提供非常容易的點擊設計窗口環境用戶不需要自己編程,也不需要了解HDL語言,只有點擊鼠標即可完成對地址鎖存器、Flash、可編程邏輯電路等外設的所有配置和寫入。它支持所有PSD器件的開發,使用PSDsoftEXPRESS工具對uPSD323X系列器件的可編程邏輯電路的操作簡單、直觀。PSDsoftEXPRESS工具可以在ST網站(/psd)免費下載。
3用uPSD323X實現EPP接口設計
3.1硬件接口
EPP增強并口的速度最高可達到500KB/s~2MB/s,這對外設的接口設計提供了一個很高的要求,如果外設響應太慢,系統的整體性能將大大下降。用戶可編程邏輯器件,系統的整體性能將大大降低。用戶可編程邏輯器件,如FPGA(FieldProgrammableGatesArray,現場可編程門陣列)和CPLD(ComplexProgrammableLogicDevice,復雜可編程邏輯器件),可以實現EPP增強并口的接口設計,這種實現方案可以達到并口中的速度極限,并且保密性好。ST公司的uPSD323X內部集成了可編程邏輯電路(CPLD),因此使用uPSD323X可以很好地實現EPP增強并口的接口設計。
EPP接口(EPP1.7)外設硬件接口原理如圖3所示。在本設計中,uPSD323X通過中斷的方式接收PC機并口的數據,并且當外設準備好數據上傳到PC機時,PC機采用的也是中斷方式接收外設的數據。
在上述硬件電路的基于上實現EPP并口通信還需做兩部分的工作:一部分工作是在PSDsoftEXPRESS工具中完成對CPLD的數據的鎖存;另一部分工作是在KEILC51環境下編寫中斷服務程序,實現EPP數據的讀取和發送。
圖3
3.2對CPLD的編程及其實現數據鎖存的過程
在PSDsoftEXPRESS工具中,將PA端口(EPPD0~EPPD7)配置成帶有時鐘上升沿觸發的寄存器類型(PTclockedregister)的輸入宏,PB0(nWait)配置成上升沿觸發的D類型寄存器(D-typeregister)的輸出宏,PB3(nWrite)、PB4(nDstrb)、PB2(nAstrb)配置成CPLD邏輯輸入(logicinput)口。NDstrb信號和nAstrb信號各自取反再相與后的值作為輸入宏單元和輸出宏單元的時鐘。上述對PA、PB端口的配置用方程式表示如下:
PORTAEQUATIONS:
=======================
!EPPD7_LD_0=nAstrb&nDstrb;
EPPD0.LD=EPPD3_LD_0.FB;
!EPPD3_LD_0=nAstrb&nDstrb;
EPPD1.LD=EPPD3_LD_0.FB;
!nWait_C_0=nAstrb&nDstrb;
EPPD2.LD=EPPD3_LD_0.FB;
EPPD3.LD=EPPD3_LD_0.FB;
EPPD4.LD=FPPD7_LD_0.FB;
EPPD5.LD=EPPD7_LD_0.FB;
EPPD6.LD=EPPD7_LD_0.FB;
EPPD7.LD=EPPD7_LD_0.FB;
PORTBEQUATIONS:
=======================
nWait.D:=1;
nWait.PR=0;
nWait.C=nWait_C_0.FB;
nWait.OE=1;
nDstrb.LE=1;
nAstrb.LE=1;
EPP數據的鎖存過程如下:以計算機向外設傳輸數據(即EPP數據寫周期)為例子,計算機首先檢測nWait信號,如果nWait為低計算機把nWrite信號置為低,表明是寫周期,同時將數據放到數據總線上,然后置低nDstrb信號。此時,nDstrb信號會出現一個上升沿,此上升沿會將PA端口的數據鎖存到輸入宏;同時,此上升沿使nWait信號變高,表示外設正忙阻計算機發數年。當計算機檢測到nWait信號為高后就會將數據握手信號nDstrb變高,EPP數據寫周期結束。上述EPP數據的鎖存和nWait握手信號的產生都由硬件產生,因此數據傳輸速度快。整個數據傳輸過程可以在一個I/O周期內完成,鎖存到輸入宏的數據的讀取和nWait信號的清除則在外部中斷0服務程序軟件完成。
3.3中斷服務程序的功能描述及流程
由硬件原理圖可以看出,EPP并口的nDstrb和nAstrb信號線分別連到uPSD323X的外部中斷定和外部中斷1引腳。當發生EPP數據讀寫時,nDstrb信號就會產生一個下降沿,引起外中斷定中斷。當發生EPP地址讀寫時,nAstrb信號就會產生一個下降沿,引起外中斷1中斷。外部中斷0和外部中斷1的中斷服務程序的功能是相同的,只不過前者接收或發送的是數據而后者是地址、命令等。以外部中斷0的中斷服務程序為例,詳細介紹數據正向傳輸(計算機向外設發送數據)和反向傳輸(外設向計算機傳送數據)時中斷服務程序的功能。外部中斷0中斷服務程序流程如圖4所示。
(1)數據正向傳輸
當發生EPP數據寫周期時,即數據正向傳輸時,計算機首先檢測nWait信號。如果nWait為低,表示外設已準備好接收數據。計算機把nWrite信號置為低,表明是寫周期,同時將數據放到數據總線上,然后置低nDstrb。NDstrb信號就會產生一個下降沿,此下降沿一方面將PA端口的數據鎖存到輸入宏并使nWait信號變高,表示外設正忙另一方面引起外部中斷0中斷,在外部中斷0的中斷服務程序中讀取輸入宏鎖存的數據,然后將nWait信號清零通知計算機現在外設已經準備好可以再次接收數據了。
(2)數據反向傳輸
機電接口主要就是機電一體化產品中機械裝置與控制微機之間的接口,其是基于機電一體化而產生的。機電接口根據信息傳輸方向的不同,可以分為信息采集接口、輸出接口[1]。在機電一體化產品中,傳感器是一種較為常用的設備,在輸出信號的時候,一般采用模擬量方式進行檢測,時刻掌握發電機轉速,并且檢測差動變壓器位置。然而,在輸出控制量的時候,存在一個比較特殊的形式,就是數字系統。機電接口技術主要就是研究機電系統各項組成技術與子系統連接問題的綜合技術,其主要包括電子技術、信息技術、機械技術等,共同構成了一個綜合系統,在實際應用中,實現了信息的交互與融合,在機電系統設計中發揮了至關重要的作用。機電接口主要是由硬件與軟件共同構成,在機電系統運行中,與環境及操作者之間成立一種有效連接,在物理通道中展開信息與能量的輸入、轉換及傳輸。在信息轉換的過程中,需要進行有效的交互與調整,實現機電一體化技術的協調與綜合,保證各系統的有效運行,充分發揮系統功能,實現預期的工作目標。
(二)分類
目前,機電接口主要包括以下幾種:智能接口、動力接口、機電接口、人機接口[2]。智能接口應用較為復雜,不同技術形式產生的信息形式也不同,并且在使用過程中,可以根據不同要求展開相應的改變。在各種信息轉換與傳輸的過程中,智能接口可以確保不同技術與子系統的有機結合,構成一個完整系統。動力接口可以有效連接動力源與機電系統,之后給予機電系統相應的驅動動力。在機電系統中,動力類型有很多種,主要包括直流電、交流電、液壓等,在系統中運用不同動力類型的時候,需要選用不同的接口形式,確保系統可以正常運行。機電接口的作用就是實現各種驅動系統的有效連接,并且將驅動信號轉變成執行信號,在轉變的過程中滿足傳感器運行要求。人機接口是機電系統與操作者之間存在的接口,通過這一接口,可以在操作者眼前呈現系統運行狀態,并且有效監控系統運行,實現人性化操作目標。
二、機電一體化發展及其發展趨勢
(一)機電接口技術對機電一體化發展的影響
近些年來,隨著社會經濟的快速發展,人們生活水平的不斷提高,對一些事物的要求也在明顯提高。經濟的快速發展離不開科學技術水平的提高,傳統機械技術已經無法滿足現代人們日益增長的技術需求,需要對其進行改進與完善。從而在此形勢下,機電一體化技術應運而生,其主要包括電子技術、信息技術、機械技術等,充分滿足了現代社會發展的技術要求。在機電一體化技術初始發展中,只是將電子技術與機械技術進行融合,接口十分簡單、便捷[3]。然而,隨著科學技術的不斷發展與進步,機電一體化技術水平也在不斷提升。目前,機電一體化技術不再是簡單的機電一體化產品,逐漸形成了一個復雜的系統,其系統內部接口也日益復雜?,F階段,機電一體化技術研究越來越深入、成熟,然而,簡單的技術研究已經無法滿足系統的運行需求,需要充分重視其復雜性研究。針對機電一體化技術而言,其復雜性較強,如果只是單純研究系統設計及其集成理論,根本無法充分實現系統的作用,為此,需要加深對機電接口技術的研究,在設計方面,加強對有關理論的融合,確保機電一體化系統的全面實施。在機電一體化技術發展過程中,越來越向智能化、系統化、微型化、網絡化方向發展,其系統內部接口要求越來越高,不僅要確保接口技術與系統技術的有效融合,還要確保信息傳輸的順暢。
(二)機電一體化發展歷程及趨勢
數據采集系統中,通過微機COM端口的RS-232串行通訊及通過微機并行端口的并行通訊具有開發使用方便的特點,前者可與工作于11.0592MHz晶振下的8052單片機在波特率115200時,實現10ksps(samplespersecond)的連續數據采集和傳輸而不丟失數據,若要達到更高速率的數據采集,可以通過并行口通訊方式實現。當前微機均可通過配置CMOS,將基地址為378H的并行口設置為EPP模式以支持通過數據口雙向傳輸通訊,并由芯片硬件自動產生握手信號,實現高速傳輸的目的。
為充分實現EPP模式的高速特性,外設應當及時響應EPP的握手信號,當數據采集系統工作于非實時多任務的WIN98操作系統環境下,為實現數據高速、均勻性采樣,還需要在外設配置必要的數據緩沖存儲器。如果數據采集速率低于EPP模式數據讀入平均速率,就可能實現數據的連貫有效性。有資料[1]說明在EPP模式,可實現500kBytes/s以上的傳輸速率,這表明通過EPP模式,可以實現500ksps的數據采集系統。通過對EPP模式的深入實驗分析,發現要實現500ksps,外設硬件及微機軟件程序均要采取一些策略:硬件上必須配置FIFO數據緩沖存儲器,才能協調數據采集嚴格的時間間隔要求與數據傳輸給微機的非實時、非均勻性之間的矛盾;軟件程序方面應當采取雙字讀的方法,否則EPP模式下僅能實現250kBytes/s數據讀取可行性。
1EPP模式讀取速率的實驗分析
圖1為實驗EPP模式讀取速率的電路,實驗程序為
Delphi結合內嵌匯編語言,涉及EPP讀取的關鍵代碼如下:
FUNCTIONREADDATA:BYTE;
VAR
STARTTIME,STOPTIME,DELAY:INT64;
NUMBER:LONGWORD;
QUERYPERFORMANCECOUNTER(STARTTIME);
FORNUMBER:=0TO999999DO
BEGIN
ASM
MOVDX,$37C
INAL,DX
MOVRESULT,AL
END;
END;
QUERYPERFORMANCECOUNTER(STOPTIME);
DELAY:=STOPTTIME-STARTTIME;
END;
此為循環1000000次讀取EPP數據口程序,循環僅為方便用計時及示波器觀察而設,并在執行前后分別讀取系統計數值,DELAY值除以1.2后為執行花費的時間(單位為微秒),執行前先通過對地址379H的D0位寫入高,使該位為低(注意:對該位寫入低通常不能達到使該位變為低的目的,只有采取寫入高才能使該位變為低),以清除EPP超時位,當A、B點均為低時,可實現最快的EPP握手,若A為高、B為低時,由于EPP周期開始時滿足WAIT為低的要求,EPP自動在DATASTB處輸出低,但因WAIT沒有出現表示應答的高狀態,EPP在延時10μs后,將DATASTB恢復為高以結束該次EPP訪問過程,并置超時位。稍后因WAIT為低再次開始一次EPP訪問過程,如果B為高,則WAIT為高,不能滿足EPP的開始條件,故DATASTB保持為高,EPP在延時10μs后結束該次EPP訪問過程,并置超時位。在發生超時情況下,數據仍然可正確讀入
(這一特性與筆者所查資料[1]有出入),此結論可通過對比循環前后時間差來及實際讀入數據值證實。
注意程序循環中并未執行清除EPP超時位的指令,根據筆者實驗,即使已發生EPP訪問超時,也不影響下一次的EPP讀周期(包括對37BH的地址讀及對37CH的數據讀),但超時對EPP寫周期有影響,在清除超時位之前,EPP寫周期無效(因本文不涉及EPP寫周期的內容,此處不再展開探討)。在圖2所示意波形中,當有正確握手的EPP讀周期執行時間約為1.5μs,此時間是字節模式下一次有效EPP訪問所需最短時間,在這段時間內,“INAL,DX”這一條指令占據了約90%以上的訪問時間,驗證此點僅需臨時屏蔽“INAL,DX”指令,并比較所花費的時間差別即可。1.5μs相當于接近700kBytes/s的數據讀速率。如果以“INEAX,DX”替代“INAL,DX”指令,可以充分利用EPP模式下硬件將4個8位數自動合并為1個32位數的特性,在一次I/O訪問中由硬件自動產生4個DATASTB負脈沖從而實現4個字節的輸入。因為一次字節模式的I/O訪問所費時大約間需要1.5μs,減少這類指令的執行次數有利于實現更高速的EPP訪問過程,經實驗發現以4字節方式訪問的EPP過程可以在3.2μs內讀取一次,即平均每字節需0.8μs,相當于1.2MBytes/s,此實驗結果是基于外設可以連續不斷的輸送數據理想前提,實際上要實現有效的數據傳輸,可得到的速率要低于該值。
2WIN98下高速EPP接口的構成
在WIN98環境下,由于非實時多任務的特性,運行于RING3的應用程序頻繁作系統打斷,這決定了靠軟件無法實現連續均勻的數據采樣,只有在硬件上配置數據緩沖存儲器并及時傳入微機以免數據緩沖存儲器溢出。只要保證一定深度的數據緩沖存儲器,且滿足數據傳輸平均速率大于數據采樣速率,就能將所采集的數據傳入微機的大容量內存,以備處理。在硬件構成方面,為以較低代價獲得大容量的FIFO數據緩沖存儲器,采取CPLD器件結合512KB的SRAM方式,實現,由CPLD器件完成讀寫控制的FIFO特性及EPP模式的應答握手信號。接口結構及CPLD內部功能模塊見圖3所示,數據在CPLD控制下,以2μs的固定速率存入SRAM環狀連續增量地址,因為EPP模式讀取速率與數據采樣的固定速率是異步的,控制邏輯為保證2μs的固定采樣速率,當采樣時間點到達時,不論當前是否處于EPP應答處理期間,優先執行數據采樣,因為處理是在系統時鐘脈沖驅動下的硬件行為,僅存在固定的傳輸延時,故兩次采樣間隔是嚴格保證的。
EPP模式的讀取平均速率必須高于數據采樣速率,一旦FIFO數據讀空必須讓微機正確處理,由前述實驗可知,每次字節方式I/O執行時間約為1.5μs,如果通過在EPP的狀態口(379H)的保留位輸入代表FIFO讀空的信號,則每完整讀取均要執行兩次I/O指令:EPP數據讀及EPP狀態讀,至少需3μs完成讀取一個字節,這也是通常方式能達到的最快有效讀取速率。當采用雙字讀讀及EPP狀態讀的方式時,需4.8μs完成4個數據字節讀取,但此方式需要處理的一個問題:由于雙字方式EPP數據讀由硬件自動產生4個EPP數據讀周期,當其執行完畢,執行EPP狀態讀發現FIFO已空,微機軟件無法判別在從第幾個EPP數據讀周期開始FIFO為空,從而影響對數據隊列的正確排序,故CPLD邏輯應當在FIFO隊列還有至少4個未讀數據時必須發出讀空信號,微機程序應當在每次EPP開始前執行讀取狀態口的指令,以決定是否可以開始EPP數據讀周期,從上分析可以看出為實現有效的EPP數據讀取,平均每字節至少需要1.2μs,即可
以獲得最快約800kBytes/s的數據傳輸速率。因500ksps的數據采集設計速率僅略低于800kBytes/s的數據傳輸速率,考慮WIN98工作環境,配置大容量的FIFO十分必要,采用大容量SRAM與CPLD器件構成FIFO,具有成本較低的優點,通過使用VHDL的行為描述,經CPLD器件開發軟件的編譯、綜合、仿真、適配、下載,實現所需要的控制邏輯。根據設計,當數據鎖存輸出的下一個時鐘脈沖(即83ns后),WAIT將輸出為高電平,EPP在此時讀取數據口信號,如果不采用外部緩沖驅動器,數據上升過程將耗時80ns,對EPP數據接收可靠性有不容忽視的影響,為減小電纜電容的影響,數據輸出使用了74ALS574芯片作緩沖,其高電平輸出能力達15mA,是ispLSI1032高電平輸出能力的3.5倍,在電纜電容有100pF時,23ns可達到3.5V的邏輯高電平,保證數據接收可靠性。
1USB協議和芯片選擇
理解好USB協議是USB系統開發的第一步。USB協議版本包括1.0、1.1和2.0,USBOTG是對2.0版本協議的補充。雖然USB協議內容繁多且復雜,然而,對USB開發影響較大的卻只是少數部分,以下對協議版本1.1[1]中這些部分進行介紹。
1.1USB協議
一般,每個USB設備由一個或多個配置(Configuration)控制其行為。使用多配置原因是對操作系統的支持;一個配置由接口(Interface)組成;接口則是由管道(Pipe)組成;管道與USB設備的端點(Endpoint)對應,一個端點可以配置為輸入輸出兩個管道。在固件編程中,USB設備、配置、接口和管道都用描述符報告其屬性。
圖1為USB多層次通信模型。端點0默認配置為控制管道,用來完成所規定的設備請求(USB協議第九章)。其它端點可配置為數據管道。對開發而言,主要的大數據傳輸都是通過數據管道完成的[2]。
USB傳輸類型包括批量傳輸、等時傳輸、中斷傳輸和控制傳輸,每種傳輸類型的傳輸速度、可靠性以及應用范圍都不同[3]。控制傳輸可靠性是最高的,但速度最慢;等時傳輸速度快,滿足實時性,但可靠性低。在具體應用中,端點傳輸類型可根據傳輸速度和可靠性選擇。
在USB通信協議中,主機取得絕對主動權利,設備只能是“聽命令行事”,通過一定的命令格式(設備請求)完成通信。USB設備請求包括標準請求、廠商請求和設備類請求。設備的枚舉是標準請求命令完成的;廠商請求是用戶定義的請求;設備類請求是特定的USB設備類發出的請求,例如海量儲存類、打印機類和HID(人機接口)類。固件編程中設備請求必須遵循一定的格式,包括請求類型、設備請求、值、索引和長度。
1.2USB接口芯片選擇
USB接口芯片的類型有:
(1)按傳輸速度的高低:低速(1.5Mbps)和全速(12Mbps)可選USB1.1接口芯片,例如Philips公司的PDIUSBD12和Cypress公司的EZ-USB2100系列;高速(480Mbps)可選USB2.0接口芯片,例如Philips公司的ISP1581和Cypress公司的CY7C68013。
(2)是否帶MCU(微控制器):一般Philips公司的都不帶MCU,Cypress公司大多都帶,例如AN2131。
(3)是否帶主控器功能:不需要主機參與,主從設備間可進行數據傳輸,芯片有Philips公司的ISP1301和Cypress公司的SL811HS等。
還有專門用途USB芯片,例如閃存專用芯片IC1114。工程中用戶可根據自己的需求選擇一款性價比高的芯片。另外可用開發資源也是要考慮的重要方面,例如開發板和芯片廠商提供的網上資源,可大大降低開發的難度。
2基于USB接口的數據采集系統的設計
2.1系統簡介
該系統能夠實現16路溫度數據自動采集,系統的組成框圖如圖2所示。主要包括8個組成部分:中央處理器選用AT89C52芯片,完成各部分控制功能和USB傳輸協議;實時時鐘記錄當前測量溫度的時間;溫度傳感器和接口電路主要完成溫度采集,并讀入MCU處理;復位電路完成對MCU的上電復位和電源電壓監視;看門狗電路用來監視MCU是否工作;存儲電路主要存儲采集到的溫度數據以及采集的實時時間;電源電路主要為各部分提供要求的電源;外設與主機間的通信電路采用USB接口。
2.2接口芯片選擇
接口電路采用Philips公司的PDIUSBD12[4](以下簡稱為D12)芯片。主要因為D12芯片信息、開發資源豐富,具有較高的性價比。
D12芯片的主要特點包括:
·符合USB1.1版本規范;
·可與任何外部微控制器/微處理器實現高速并行接口(2MB/s);
·采用GoodLink技術的連接指示器,在通信時使LED閃爍;
·主端點的雙緩沖配置增加了數據吞吐量并輕松實現實時數據傳輸;
·在批量和等時模式下均可實現1MB/s的數據傳輸率;
·完全自治的直接內存存取DMA操作。
2.3接口硬件設計
由D12接口組成的通信電路原理如圖3所示。關于D12的各引腳說明見參考文獻[4]。多路地址/數據總線ALE接單片機的ALE腳,這樣使用MOVX指令可以與D12接口,對D12操作就象對RAM操作一樣,此時忽略A0(命令口和數據口地址線)的輸入。因為沒有使用DMA傳輸方式,所以沒有用到DMACK_N、EOT_N和DMREQ_NDMA引腳。INT_N是USB中斷請求腳,發出USB中斷請求;GL_N是GoodLink指示燈,在調試過程中非常有用,在通信時會不停閃爍。如果一直亮或者一直暗,表示USB接口有問題,如果D12掛起,則LED關閉。CLKOUT是D12的時鐘輸出,可以通過固件編程改變其頻率,在調試固件時,可作為參考。
2.4接口程序設計
USB接口程序設計是USB開發的核心。USB接口程序設計包括三部分:單片機程序開發、USB設備驅動程序開發、主機應用程序開發。三者互相配合,才能完成可靠、快速的數據傳輸。
2.4.1單片機程序設計
單片機程序(又稱固件)采用模塊化程序設計,主要模塊包括:數據采集模塊、數據處理、監控模塊和數據通信模塊。模塊化設計的優點是可靠性高、可讀性好、升級簡單。
通信模塊固件結構如圖4所示。主循環和中斷服務程序之間的數據交換可通過事件標志和數據緩沖實現。圖3中USB中斷引腳INT_N發出中斷請求,中斷服務程序根據中斷請求類型操作,設置事件和填充數據緩沖區再傳輸給主循環;標準設備請求程序是對標準請求進行處理;用戶可以根據實際需要編寫廠商請求,例如發出啟動或停止數據采集命令。
圖3USB接口連接示意圖
2.4.2驅動程序設計
驅動開發工具有DDK和第三方開發工具。其中DDK開發難度最大,第三方開發工具有DriverStudio和Windriver等。DriverStudio難度適中,而Windriver則屬于應用層驅動開發,難度小,但效率低,并存在問題。
DDK驅動程序開發工作包括:開發環境設置(VC編譯環境)[5]、驅動程序設計[6]、安裝文件(INF文件)設計。
驅動程序設計采用WDM(WindowsDriveMode)。WDM設備驅動程序提供了一個參考框架,大大降低了由DDK書寫驅動程序帶來的難度。
D12驅動使用的例程包括:DriverEntry、AddDevice、DispatchPnp、DispatchRead、DispatchWrite和DispatchDeviceControl例程,以下是D12的WDM驅動程序函數:
DriverObject->MajorFunction[IRP_MJ_CREATE]=D12_Create;
DriverObject->MajorFunction[IRP_MJ_CLOSE]=D12_Close;
DriverObject->DriverUnload=D12_Unload;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL;
=D12_ProcessIOCTL;
DriverObject->MajorFunction[IRP_MJ_WRITE]=D12_Write;
DriverObject->MajorFunction[IRP_MJ_READ]=D12_Read;
DriverObject->MajorFunction[IRP_MJ_SYSTEM_CONTROL;
DriverObject->MajorFunction[IRP_MJ_PNP]=D12_Dispatch;
DriverObject->MajorFunction[IRP_MJ_POWER]=D12_Process-PowerIrp;
DriverObject->DriverExtension->AddDevice=D12_PnPAddDevice;
驅動程序與應用程序和硬件之間通信都是IRP(I/O請求包)完成的。IRP_MJ_PNP主要是實現USB即插即用,例如設備的添加、刪除和資源的分配;IRP_MJ_POWER實現電源管理,例如設備的掛起和喚醒;IRP_MJ_CREATE(創建)、IRP_MJ_CLOSE(關閉)、IRP_MJ_
DEVICE_CONTROL(設備控制)、IRP_MJ_WRITE(讀)和IRP_MJ_READ?穴寫?雪是主要完成數據通信的函數,實現管道的創建、關閉和數據讀寫。其中設備控制具有輸入輸出緩沖區,可實現讀和寫功能;AddDevice和DriverUnload實現設備管理,在設備添加和卸載時,創建和刪除設備,以及管理資源分配。
驅動程序通過安裝文件(.inf文件)中PID(產品識別號)和VID(廠商識別號)識別USB設備。
2.4.3應用程序設計
主機應用程序的編寫使用VC編譯環境中的API函數實現。
應用程序的編程方法與串口編程類似。首先必須查找設備,打開設備的句柄;然后進行讀寫和控制操作;最后是關閉設備句柄。為了提高效率,可使用多線程技術實現讀寫。
應用程序通過GUID(注冊表驅動唯一識別號)查找驅動程序。
2.5調試
首先是固件調試,可用仿真機完成,驅動開發工具Windriver也是很好的固件調試工具,例如測試標準請求、廠商請求和管道讀寫。其次是驅動調試,這是USB接口開發最困難的部分,調試工具可用DriverStudio中Softice工具和文獻[6]中DebugPrint跟蹤工具,監視工具BusHound可監視USB的實際數據傳輸情況。需要注意的是,驅動調試必須在應用程序正確調用的前提下。
2單邊通信協議
根據蟲孔(Wormhole)交換策略[5],一個數據包被劃分為若干個微片(flit),其中位于數據包最前端和最尾端的微片分別被稱為頭微片(headflit,HF)和尾微片(tailflit,TF),中間部分的微片則被稱為體微片(bodyflit,BF),這三種微片可進一步通過微片類型編碼進行區分。數據包的頭微片主要包含相關的路由信息,如源節點坐標(src_x和src_y)、目的節點坐標(dst_x和dst_y),以及數據包長度、冗余校驗碼等信息,尾微片和體微片則包含了具體待傳輸的數據。此外,在具有多個虛通道的片上網絡中,微片中還包含了其所屬的虛通道號(vcid),以使不同數據包的微片可以在數據鏈路上混合傳輸,從而提高數據鏈路的帶寬利用率。為了減少處理器的干預、提高數據傳輸效率,本文對片上網絡采用單邊通信協議,其主要思想是在數據包中顯式地包含數據的目的地址。圖2示意了本文使用的數據包格式:一個數據包由至多16個微片組成,每個微片的數據負荷為32位;第一個微片為頭微片,包含了路由信息及數據包長度信息;第二個微片包含了一個32位的目的地址,該地址指定了后續數據在目的節點中應被存放的位置;后續微片則包含了具體傳輸的數據。這種將目的地址包含在數據包中的單邊通信方式使網絡接口能直接將接收到的數據存入存儲器,而無需處理器進行干預,因此有助于提升網絡接口的數據接收能力。
3網絡接口設計
網絡接口(NI)負責數據包的發送和接收工作,是處理單元與片上網絡通信的接口。一方面,NI監聽從網絡到達該節點的微片,組裝成完整的數據包,然后通知DMA控制器根據接收到的目的地址將數據存放到存儲器中;另一方面,NI從處理器接收數據,將數據進行打包后傳入片上網絡。因此,NI的處理器端和網絡端需分別滿足嵌入式總線協議(本文采用AHB總線[6])和基于信用量(credit)的流控協議。以具有兩個虛通道(分別用VC0和VC1表示)的片上網絡為例,圖3示意了本文設計的網絡接口結構,其中上半部為網絡接收部分,下半部為網絡發送部分。在網絡接收部分,每個虛通道都對應了一個接收隊列、數據包隊列、目的地址寄存器和DMA寫控制器(wDMA)。數據包的解析和接收是由接收控制狀態機和wDMA控制器協同實現的,圖4示意了兩者的狀態轉換關系與協同工作方式。一方面,接收控制狀態機對接收隊列中的微片進行解析,剝離vcid和微片類型等信息后,將有效數據存入數據包隊列;接收控制狀態機檢測到一個完整的數據包后,就通知相關的wDMA控制器直接將接收到的數據搬移到存儲器中。另一方面,DMA寫控制器(wDMA)接收到DMA傳輸請求之后,首先從數據包隊列中讀取出第一個微片,并將其記錄為后續數據的目的地址;然后,wDMA控制器向AHB仲裁器發送總線請求信號,申請對總線的所有權;接下來,wDMA控制器發起AHB總線傳輸操作,將數據包隊列中的數據按照先前記錄的目的地址連續地存入存儲器中;等到數據包隊列為空之后,接收控制狀態機和wDMA控制器均返回空閑狀態。在網絡發送部分,處理器將待發送數據的起始地址(針對發送節點而言)和數據長度寫入相關的DMA讀控制器(rDMA)中,再由rDMA將數據從存儲器搬移到發送端的數據包隊列。發送控制狀態機再將數據包的目的地址(針對目的節點而言)與數據包隊列中的數據進行打包后傳入網絡。另外,由于VC0和VC1可能同時發送數據包,因此在發送控制狀態機中還進行了虛通道間的仲裁,仲裁的結果用于選擇相應的數據進入網絡。為了簡化接收控制狀態機對完整數據包的探測過程,規定網絡中數據包的長度不能大于NI中數據包隊列的深度,以使數據包隊列可以存放一個完整的數據包。在本文中,NI接收部分和發送部分的數據包隊列深度均被設置為16,因此網絡中的數據包最長不能超過16個微片。
4驗證及性能分析
4.1驗證及測試環境為了對設計的片上網絡傳輸接口進行驗證及性能測試,本文將網絡接口集成到了一個4×4mesh片上多處理器驗證環境中,圖5示意了該多處理器的結構:每個節點均為一個基于AHB總線的小型系統,其中包含了一個小型RISC處理器(μP)、私有SRAM存儲器、片上網絡路由器及網絡接口。為了對網絡接口的性能進行對比分析,本文選取了并行FFT計算[7~10]作為應用案例來對該16核系統進行性能測試。其中,測試組采用本文設計的網絡接口,數據在存儲器和網絡接口間的搬移采用DMA方式實現;而對比組采用非DMA操作的網絡接口,數據的搬移是以中斷的方式通知處理器μP干預實現。
4.2案例測試圖6給出了在16核系統中進行單精度浮點FFT計算的結果,其中橫軸表示輸入序列長度的對數,縱軸為計算過程所消耗的時鐘周期。從圖5可以看出,對比采用CPU干預型網絡接口的16核系統,采用DMA傳輸型網絡接口的16核系統具備了更高的并行計算性能。當FFT序列長度為1024時,本文設計的網絡接口使FFT計算耗時降低了20%左右,且隨著FFT序列長度的增加,DMA傳輸型網絡接口對16核系統并行計算性能的提升更加明顯。導致FFT計算性能提升的原因主要有兩點。1)由于本文設計的網絡接口通過DMA方式實現數據負荷的搬移,而非通過CPU進行顯式的搬移,因此縮減了數據包的發送和接收延時,減低了處理器核間通信帶來的性能損耗;2)網絡接口采用的DMA傳輸方式減少了CPU對數據包的干預,使得CPU能更加專注地進行數據運算,因此應用程序的并行計算性能得到了提升。
《微機原理與接口技術》是高職高專計算機及相關專業必修的一門專業基礎課,同時也是一門實踐性和應用性很強的課程。經過理論和實驗兩方面的教學,使學生掌握微型計算機的基本工作原理,匯編語言程序設計的基本方法,微機系統與輸入輸出設備的典型接口電路和接口技術,并能綜合運用軟、硬件技術分析實際問題?!段C原理與接口技術》這門課程的學習涉及到很多先行課程,比如《模擬電子技術》、《數字電路》等,這些課程的學習效果往往對本課程的學習有一定影響,加之本課程的教學內容較多,各個知識點之間相互交叉又造成理解上的困難,需要學生記憶的內容太多,導致學生學起來較困難,從而失去了學習的信心,達不到預期的教學效果。針對這樣的現狀,作者結合自己的教學實踐,談談對于該課程教學的思考。
一、讓學生充分認識到該課程的重要性,提高學生的學習動力及興趣
隨著高校的擴招,就業壓力的增大,學生密切的關注所學的知識是否能夠促進自己未來的就業和發展,高職學生尤是如此,所以在教學過程中經常有學生提問說《微機原理與接口技術》這門課程晦澀難懂,學習它有什么實際意義,對我今后的學習和發展有什么作用。對于學生的提問我思考:其實在教學過程中第一節課是非常關鍵的,在第一節課里教師應該將本課程的內容進行整體的介紹并且要告訴學生學習該課程的意義?!段C原理與接口技術》主要講述微型計算機的基本工作原理,匯編語言程序設計的基本方法,微機系統與輸入輸出設備的典型接口電路和接口技術三部分內容。第一部分內容的學習有利于學生對微機工作原理有深入地了解,直接地應用在嵌入式計算機、自動控制等方面,掌握它也有利于對后續課程的學習,比如《操作系統》、《編譯原理》等,并且這一部分內容中介紹到的計算機內部各部件的結構又是匯編語言程序設計的基礎。第二部分介紹的匯編語言程序設計是我們和計算機溝通最直接的方式,如果我們想從事計算機科學方面的工作的話,匯編語言的基礎是必不可缺的,因為我們的工作平臺、研究對象都是機器,我們通過匯編語言和機器交流,尤其在和硬件關系非常密切的程序或要提高運算速度的程序,即使是 C 語言也會有些力不從心,而匯編語言則能夠很好揚長避短,最大限度地發揮硬件的性能。由于匯編語言和硬件密切相關,所以第一部分內容的學習一定要打好基礎。第三部分內容是一些常用且典型的芯片,使學生能深層次的理解微機系統,為以后學習其他芯片打下基礎。只有讓學生認識到本課程的學習確實能對自己的就業和未來發展有用,才能激起學生學習的興趣和動力,提高主動學習的熱情。
二、改進教學方法,提高教學效果
《微機原理與接口技術》這門課程中有一些內容確實比較抽象,難于理解,又有很多知識點需要學生記憶,所以光有學習的熱情還不夠,正確的學習方法才能有事半功倍的學習效果。
1、在學生學習過程當中,要不斷鼓勵學生
《微機原理與接口技術》這門課程會分章節講述構成微機的中央處理器,系統總線,存儲器,輸入輸出設備和一些典型的接口電路以及它們的工作原理。我們知道微機是一個有機的整體,要講清楚任何一個部件的工作原理都不可能只單獨將這一部件拿出來講,必然涉及到其他新部件,而其他新部件我們還沒接觸到,所以經常出現一個知識點還沒講清楚,又出現新的疑問,在整個課程的學習當中疑問會一直存在,直至該課程結束,也就是說只有到學期末所有的疑問才能搞清楚。還有這門課中最難的地方在第二章,本章知識理解起來困難,并且有大量內容(幾乎全部內容)要求在理解的基礎上記憶以便為后續的學習奠定基礎,而這時學生剛剛開始接觸這門課程便一下子覺得很難,容易產生放棄的思想。所以教師在整個學期別是學期初一定要不斷鼓勵學生:學習中存在問題是很正常的,隨著進一步學習問題會得到解決,關鍵是堅持,樹立學習信心。
2、對于抽象的概念和工作原理,老師要精心設計課堂教學,使晦澀難懂的知識變得淺顯易懂
課堂教學是使學生獲得知識最有效最快捷的方式。在教學過程中,真正做到“以學生為本”,提高課堂效率,我的體會是精心的進行合理、有效的課堂教學設計。合理、有效的課堂教學設計可以在最短的時間得到最好的教學效果。比如,本課程的教學安排中,先講cpu內部寄存器后講存儲器分段,講cpu內部寄存器時就要涉及到存儲器分段,這樣一來知識點前后交叉多,學生聽不明白,老師也會覺得講不清楚。換種思路,重新調整一下次序,先介紹存儲器分段,講清楚四種段、段地址和偏移地址以及物理地址的形成,再介紹cpu內部寄存器,4個段寄存器分別存放4個段的段地址,地址指針寄存器和指令指針寄存器用來存放偏移地址,這樣講符合學生接受知識的規律,用時較少而且教學效果好。
3、采用多媒體教學手段,更高效地完成課堂教學任務
隨著信息技術的發展,多媒體技術在課堂教學中得到了廣泛的應用。多媒體計算機使圖、文、聲、像集于一體,使教學內容形象生動富有感染力,使抽象問題形象化。一些抽象概念在單純語言講解的情況下,感性材料不足,說服力不強,通過多媒體可以把抽象的理論和抽象的模型具體形象地展示在屏幕上幫助學生理解。比如講存儲器分段時,說到存儲單元物理地址唯一而邏輯地址不唯一時很多學生感到很困惑“邏輯地址不唯一”,傳統教學手段憑教師一張嘴、一根粉筆、一塊黑板有時很難講清楚,這時采用多媒體動畫的形式將存儲器分段進行演示,它能夠直觀形象地讓學生看出段與段之間的一種重疊關系,某個存儲單元既屬于A段又屬于B段,從而得出這一存儲單元邏輯地址不唯一,既記住了結論又很好的理解了結論推導的整個過程。
4、注重實踐環節
參考文獻:
[1] 胡漢才,單片機原理及接口技術[M]. 北京,航空工業出版社,1998:145-200.
20世紀70年代大規模集成電路技術的發展促生了第一臺微型計算機,至今,微型計算機技術在短短三四十年的時間里已不可動搖地發展成為計算機技術領域的一個重要的分支,廣泛深入地滲透到工業控制、儀器儀表、消費產品、汽車、辦公自動化和通信等領域,從微控制器的品種、結構、功能、性能、價格、生產工藝到開發方式等都以迅猛的勢頭快速發展。這無疑對微型計算機人才的適應性提出了更高的要求。高校開設的“微機原理與接口技術”是電子、自動化、通信、計算機相關專業一門理論與實踐聯系很強的專業基礎課程,具有很高的實用價值,起到承上啟下的重要作用,其教學質量的好壞直接影響著學生綜合能力的培養與提高。為了更好地滿足社會和企業對具有高技能應用型人才的要求,減輕教師教學的壓力,結合自身教學和實踐,談幾點體會和改革的新思路。
一、安排好合理的教學計劃
“微機原理與接口技術”課程一般安排在大學二年級下學期或三年級上學期,由于內容多、難度大,初次接觸微機的大多數學生對其缺乏正確的認知,其心理上對之有一定的畏懼,所以制訂的授課計劃應重點突出、層次分明、由淺入深循序漸進。
1.重點突出、層次分明
從目前的教學培養方案來看,“微機原理與接口技術”課程的學時一般為60~70學時。在課時這么少的情況下要完成相對較多的內容,安排講授的重點就應放在實用性的理論知識上。為此應遵循以下兩個原則:首先是可行性。根據學生現有的理論儲備、企事業現階段對微機人才的要求和學院相應的設備條件等基礎環境,將有實用價值的內容合理地有重點地安排進課程或適度加強。其次是拓展性。為達到實用性強的特點,在教學計劃安排過程中,加入對知識縱向和橫向的延伸,引導學生積極思考,鼓勵學生對所學習內容在實際的應用中討論,進行更深層次的研究。只有這樣,書本上的知識才能真正成為自己的知識。
2.由淺入深、循序漸進
在“微機原理與接口技術”課程之前學生已進行了大學物理和電子技術的學習。為了更好地銜接,教師在制訂教學計劃時應從學生已經學習過的數制轉換、編碼、存儲器等知識入手逐漸深入到微機原理其他未知的領域,由淺入深地安排好課程計劃,慢慢地培養學生興趣。如此安排易于學生接受知識,起到了很好的承接作用。經過在集美大學信息工程學院、理學院和誠毅學院的實踐教學表明,這樣的課程安排很受學生歡迎。
二、選擇合適的課堂教學方法
理工學科的課程內容相對枯燥又難以理解,所以就更加要求理論教學應該針對性地尋求靈活的教學方法。適合“微機原理與接口技術”的課堂教學方法很多,如啟發式教學法、漸進式教學法、比較式教學法、歸納式教學法等。這些方法綜合應用在課堂教學中,對教學質量有很好的保證。但針對不同的學生也必須有各自的側重方法,才能達到最佳效果。下面以前兩種方法為例進行探討。
1.啟發式教學
理工課程內容的嚴謹性很容易造成課堂氛圍沉悶,形成填鴨式的教師一言堂。例如信息工程學院的學生特點是入學成績好,基礎知識比較扎實,但缺點是思維不夠活躍,最容易形成死氣沉沉的課堂。如何在教學中調動學生積極性,是改善課堂氛圍、提高學生學習效果的重要環節。所以針對信息工程學院的學生,更合適較多地采用啟發式教學,以調動學生學習熱情與興趣,促進學生個性發展。這就要求在教學中根據教學內容的鋪展由表及里循序漸進地不斷引出問題,啟迪學生去思考、分析問題,直到提出解決問題的方法或途徑。比如在教授算術運算指令時,首先引導學生回憶標志寄存器的結構和數制計算時的補碼運算,在此基礎上再仔細講解算術運算類指令的功能。有了良好的理論基礎,再舉一例題:十進制轉十六進制的轉換程序,用傳統的順序結構算法詳盡地講解轉換的過程。下一步就是引導學生思考傳統算法的不足,有的學生就提出計算太繁復、結構不合理,于是更深地引導如何解決這個問題,要求學生通過課堂練習、課后作業或上機實驗完成新的計算程序。反饋的結果是有的學生選擇使用循環結構、有的選擇過程調用,都大大地簡化了轉換程序,達到了預期的效果。最后引導學生應用后續的宏或中斷的知識完成相應的編程,進一步拓展學生思路,為學習后續的知識打下伏筆。
啟發式教學強調學生是教學的主體,調動學生的學習主動性。教師要淡化標準答案,鼓勵學生多向思維,弱化思維定勢?!拔C原理與接口技術”教學中針對信息工程學院的學生采用啟發式教學,利用學生相對比較扎實的理論知識為基礎,對學生的疑問不作正面回答,啟發學生獨立思考,培養學生獨立解決問題的能力,發揚教學民主,用問題引導學生順應教師的思路不斷思考,主動分析問題,找到問題所在并最終找到解決辦法。
2.漸進式教學法
漸進式教學法是指利用已有的知識作為新知識的基礎和階梯,靈活利用知識點之問的橫向關聯和縱向層次,由淺入深、由易到難、循序漸進的教學方法。此方法在實踐中主要針對集美大學誠毅學院的學生,他們的特點是思維活躍、富有個性,但是基礎知識相對薄弱。例如在講解存儲器時先是從上學期學生剛剛學過的觸發器入手,進入到由觸發器構成的存儲器單元,將新知識鋪墊在學生已有的知識結構上,有了這個基礎再進一步講解CPU對存儲器的組織、如何尋址,學生自然而然進入所授新知識的環境中。這樣由淺入深,層層遞進,符合認知規律,有利于學生系統全面地理解學習內容。
三、改革傳統的實驗模式
在以往的實驗教學中,實驗內容往往以驗證理論知識為主要目的,這樣安排旨在讓學生通過實驗課程加深對理論知識的記憶和理解,使實驗教學成為課堂教學的有限延伸。在實驗課中,學生用統一的模式,無法將自己的創造性想法和實驗課程結合起來,也無法靈活地將所學的理論知識和實驗內容結合起來。由于實驗內容和課堂教學內容過多重復,無法激發學生對實驗課程的興趣;理論驗證性實驗過多,學生也很難去真正地思考、分析問題,失去了提高動手能力的機會。改變傳統實驗過程中以驗證性為主的實驗模式,以理論驗證為基礎,增加實驗的拓展性、挑戰性和綜合性,真正達到讓學生在實驗環節中提高動手能力、鍛煉思維能力的目的。
1.改驗證性實驗為引導性的試驗
教師僅提供實驗目的和要求,指出實驗的方向,學生提前到圖書館或者網上查閱相關資料,設計實驗方案,編寫相關的流程圖和預習程序。在實驗中的任務是發現問題并解決問題,最后得到實驗結果。學生應根據自己的實驗過程撰寫實驗報告,重要的環節是報告中一定要包括實驗中各自遇到的問題,解決方案是什么;如果最終也未能解決問題,要分析原因并考慮可能的解決方案。同時教師也可以組織學生交流,分組討論,對各組實驗結果與報告展開分析,從而提高學生的研究能力和科學實驗能力。
2.加強參與實踐的積極性
為了充分調動學生的積極性和主觀能動性,實踐中還引入激勵機制。每一個能提前完成實驗任務的學生都有機會從教師那里隨機的得到一道拓展性的題目,這個題目是教師根據學生前面完成任務的具體情況、遇到的問題和存在的不足或是希望其在某一方面有更深的思考而針對性地提出新任務,是本次試驗的鞏固和延伸。等學期結束后進行統計,完成拓展任務多的學生就有機會實驗考試免試。由于新任務是學生主動要求的,再加上激勵機制,故學生積極性非常高,解決問題的主動性很強,收獲也更大。
3.充分利用好課外時間
論文摘要:本文論述了激光探測系統信息接口技術;討論了激光探測接口的一般設計思想。
1引言
激光具有波長單一和良好的方向性,所以和傳統的探測方法相比,激光探測具有精度高,抗干擾能力強等特點,在激光測距、激光雷達、激光告警、激光制導、目標識別等軍事領域,都得到了廣泛應用。針對不同武器系統的需求,激光探測系統接口呈現出多樣性。
近年來,隨著應用需求和集成化度的增加,激光探測系內部、激光探測系統和各武器平臺之間集成了不同廠商的硬件設備、數據平臺、網絡協議等,由此帶來的異構性給探測系統的互操作性、兼容性及平滑升級能力帶來了問題。
對激光探測系統而言,接口技術的設計是整個系統集成的關鍵技術。一個激光探測系統的設計、實施,有很大的工作量是在接口的處理上,好的接口設計可以提高系統的穩定性、運行效率、升級能力等,本文以激光探測系統接口技術為研究對象,著重分析其接口技術類型、設計考慮因素和驗證方法。
2激光探測系統幾種主要接口技術
接口是多要素或多系統之間的公共邊界部分,對激光探測系統的接口包括機械接口、電氣接口、電子接口、軟件接口等,本文著重討論電子接口。按物理電氣特性劃分,常用的激光探測系統接口類型可分為以下幾類:
1TTL電平接口:最通用的接口類型,常用做系統內及系統間接口信號標準。驅動能力一般為幾毫安到幾十毫安,在激光探測系統中主要應用是作為長距離的總線數據和控制信號的傳輸
2CMOS電平接口:速度范圍與TTL相仿,驅動能力要弱一些。
3ECL電平接口:為高速電氣接口,速率可達幾百兆,但相應功耗較大,電磁輻射與干擾與較大。
4LVDS電平接口:在標準中推薦的最大操作速率是655Mbps,電流驅動模式,信號的噪聲和EMI都較小。
5GTL接口電平:低電壓,低擺幅,常用作背板總線型信號的傳輸,雖然使用頻率一般在100MHz以下,但上升沿一般都比較陡,特別是對沿敏感的信號,如時鐘信號。
6RS-232電平接口:為低速串行通信接口標準,電平為±12V,用于DTE與DCE之間的連接。RS-232接口采用不平衡傳輸方式,收、發端的數據信號是相對于信號地的電平而言,其共模抑制能力低,傳輸距離近,多用于點對點接口通訊。
7RS-422/RS-485接口:采用平衡方式傳輸,采用差分方式,使其在通訊速率、抗干擾性和傳輸距離較RS-232接口有較大改善。多用于多點接口通迅。RS485電平接口可驅動32個負載,忍受-7V到12V共模干擾。
9光隔離接口:能實現電氣隔離,更高速率的器件價格較昂貴。
10線圈耦合接口:電氣隔離特性好,但允許信號帶寬有限
11以太網:經常采用的是10Base-T和100Base-T兩種主流標準,主要應用激光探測系統和分系統之間的接口通訊和數據傳輸。以太網接口具有性價比高、數據傳輸速率高、資源共享能力強和廣泛的技術支持等眾多優點。
12USB接口:USB總線接口是一種基于令牌的接口,USB主控制器廣播令牌,總線上的設備檢測令牌中的地址是否與自身相符,通過發送和接收數據對主機作出響應,其最大的優點是安裝配置簡單。
3激光探測系統接口方案設計考慮因素
隨著大規模數字處理芯片和高速接口芯片的迅猛發展,激光探測系統也呈現出智能化、小型化、模塊化的趨勢。在激光探測系統中,信息接口的設計逐漸向標準化、網絡化、多節點、高速等方向展
3.1接口信號傳輸中的干擾噪聲
3.1.1接口信號傳輸中的主要干擾形式
a)串模干擾:雜散信號通過感應和輻射的方式進入接口信道的干擾。串模干擾的產生原因主要是傳輸中插件等所產生的接觸電勢、熱電勢等噪聲引起的。
b)共模干擾:干擾同時作用在兩根信號往返線上,而且幅指相同。共模干擾產生的原因,主要是傳輸線路較長,在發送端和接收端之間存在著接地的電位差。
3.1.2接口信號傳輸中的抗干擾措施
a)傳輸線的選擇
為了抑制由于雜散電磁場通過電磁感應和靜電感應進入信道的干擾,接口傳輸線應盡量選用雙絞線和屏蔽線,并將屏蔽層接地,而且屏蔽層的接地要于激光探測系統一端浮地的結構形式配合,不要將屏蔽線層當作信號線和公用線。
b)傳輸線的平衡和匹配
采用平衡電路和平衡傳輸結構是抑制共模干擾的有力措施。目前廣泛使用的是差分式平衢性線電路,例如RS-422/RS-485標準串口電路。
接口信號傳輸時還要考慮與傳輸線特性阻抗的匹配問題。一般長線傳輸的驅動器接收器都適用于驅動特性阻抗為50Ω—150Ω的同軸電纜和雙絞線,一般接口接收器的輸入阻抗要比傳輸線的特性阻抗大,因此要設法將兩者匹配,最好將發送端和接收端匹配。
控制信號線的具體配置:控制信號線要和強電、數據總線、地址總線分開,盡量選用雙絞線和屏蔽線,并將屏蔽層接地。
c)隔離技術:電位隔離是常用的抗干擾方法,接口信號采用光電隔離和電磁隔離可以切斷接口內外線路的電氣連接,從而減弱露流、地阻抗耦合等傳導性干擾的影響。
3.2接口硬件的選擇原則:
3.2.1為各類接口選擇合適的總線接口芯片、接口總線,并設計具體的接口電路。
3.2.3選擇接口芯片時應根據激光探測系統CPU/MPU類型,總線類型/寬度和系統所完成的功能并按照高效、經濟、可靠,方便、簡單的原則來確定。
3.2.4設計具體的接口電路應具體考慮電源問題
3.2.5數據/命令的鎖存和驅動
激光探測系統內部及激光探測系統和其他系統間實施數據/命令傳輸時,一般采用數據鎖存技術來適應雙方讀寫的時間要求。
3.3接口的實時性
由于激光探測系統對數據處理和傳輸的實時性要求很高,設計時要使時鐘抖動、通道間時延、工作周期失真以及系統噪聲最小化,所以設計接口時盡量選用高通訊速率和同步工作方式。
接口軟件的設計原則
同步通訊系統軟件設計要充分考慮數據流量的控制,最好在數據發送方發送數據時每隔一段時間插入一段空閑時間,從而保證數據同步傳輸的可靠性。
異步通訊系統軟件設計要充分考慮合理的數據校驗方式,可以根據系統要求選擇冗余校驗、校驗和、冗余校驗的方法。
4激光探測系統接口方案設計驗證
構建高速有效的激光探測系統接口是非常有挑戰性的,并且設計者需要在設計接口前后就考慮多個因素,詳細的系統級的驗證都是必須的。
4.1設計前的驗證
基于指令集模擬器和硬件模擬器軟硬件模擬技術是一種高效、低代價的系統驗證方法。接口設計軟件采用匯編,C,C++等語言編寫,用戶編寫的接口源程序經過交叉編譯器和連接器編譯,輸入到軟件指令集模擬器進行軟件模擬。而接口硬件驗證則采用硬件描述語言如VHDL設計,經過編譯后由硬件模擬器模擬。但設計前的驗證也有一定的局限性,比如只能驗證數字接口和驗證環境理想化等缺點。這些都需要設計后的驗證
4.2設計后的驗證
最常見的驗證方法是制作模擬激光探測系統內部接口和系統間外部接口的通用信號源,通用信號源可以模擬探測系統內部的如主回波、時統、顯示、鍵盤等信號,也可以模擬輸入外部操控命令,并將激光探測系統狀態、測量數據等信息顯示輸出。
電子信息工程專業作為實踐性、應用性非常強的理工科專業,學生必須具備扎實的基礎理論知識,具有較強的實驗技能,今后才能順利地從事電子設備和信息系統的維護和研發。要實現這個目標,必須十分重視相關課程的建設,搞好實驗教學改革。而單片機原理與接口技術課程作為電子信息專業的一門專業主干課程,其應用性非常強,設計性實驗開設質量對于學生今后就業、工作至關重要。
一、教學現狀
單片機原理與接口技術課程是電子信息工程專業核心課程之一,理論的重要性不言而喻,但在實驗教學方面大都還是停留在傳統的實驗模式上,離培養學生實踐動手能力和創新精神還有差距。很多學生反映,課程學習下來理論基本掌握了,驗證性實驗也能順利完成,但要真正完成一個實際項目時,卻無從入手。出現這種現象原因是多方面的,筆者認為主要有:
1.教學模式方面的原因。傳統教學方式中,教師主要注重于理論的完整性和知識結構的完備性。理論上從單片機的結構講起,然后講匯編指令和c語言編程,再講硬件接口及相關的程序編寫,最后講一兩個實例,課時也就差不多用完了,再想講其他東西就沒有時間了。WWW.133229.cOm實驗也注重基本原理和基本方法的訓練,為了讓學生認識單片機的基本組成和基本指令,所開出的實驗就占了大部分實驗課時,最后只能做幾個綜合性實驗或做一個簡單的設計,這樣就結束了整個課程的學習。
2.教師方面的原因。自從高校擴招以后,學生的數量劇增,而教師并沒有同比例增長,教師承擔的課時量太大,教學壓力過重。具體到單片機原理與接口技術這類專業性和實驗性都非常強的課程,存在著精力投入不夠的問題。如果要改革實驗教學的模式,以設計性實驗為主的話,教師就要投入非常多的精力。
3.評價體系方面的原因。就評價體系而言,目前通行的仍然是以分數的高低來評價學生學習成績的好壞。一般采用平時成績、實驗成績、考試成績各占總成績的一定比例來得到學生課程的最后得分。對有些課程來說這種方法是比較科學的,但對單片機原理與接口技術課程,就會存在這些問題:學生成績不低,但一旦面臨實際問題時,無從入手,沒有達到本課程的教學目標。
二、解決對策
為提高單片機原理與接口技術課程教學質量,培養學生解決實際問題的能力,筆者認為,提高設計性實驗開設的質量是教學改革的重點,應該從以下幾點來改革:
1.教學模式。提出和采用新的教學模式,實驗開設要特別注重開出的設計性實驗質量。新的教學模式主要包含理論教學和實驗教學兩個方面。在理論教學中,單片機的結構和基本指令講解要精,應通過實例來將相關的知識串起來,力求通過具體實例的講解達到以較少的理論課時就讓學生真正掌握單片機的結構和指令的目的。在實驗方面,則采用以開設設計性實驗為主、驗證性實驗為輔的方法,并提高實驗課的課時數。適量開設驗證性實驗,在課堂內只做1~2個,而將大部分實驗內容放在課堂外,由學生通過開放實驗室單獨完成。增加較多的設計性實驗,供學生選做,在教師精心指導下,讓學生在課外準備,課內完成,切實提高學生的實戰技能。
2.教師自身的定位。教師應自覺提高自身做項目的能力,并保證足夠的精力投入到教學中去。教師要注重平時積累,一方面,要自己動手,精心制作好幾個作品。另一方面,也可以通過提出選題,指導學生去做,將完成后的作品及文檔全部存檔。只要通過2~3年的積累,就可以形成難度、層次區分較為合理的項目選題庫和作品庫,既為后續班級的教學創建了良好的條件,對后續學生的實驗起到示范和引領作用,又為今后的教學工作減輕了負擔。要做好這些,就要求教師充分明確自身職責,牢固樹立以教學為中心的觀念,保證有足夠的精力投入教學中。
3.評價體系。作為評價體系,要改變傳統的基本是以分數論英雄的模式。單片機原理與接口技術課程如果只是掌握了一些理論知識而沒有實戰能力,分數再高都不能算是學好。作為對學生的評價,筆者認為一定確立以實踐能力為主體的評價體系,通過對學生做的項目難易程度、項目完成的效果等驗收情況來給出合適的評價。
三、設計性實驗開設與評價體系建立中要注意的幾個問題
想搞好單片機原理與接口技術課程建設,提高學生的實戰能力,就要以設計性實驗的開設為重點來進行整體設計。筆者認為需要特別注意抓好以下四個銜接:
1.理論與實驗的銜接。理論教學是單片機原理與接口技術課程教學中必不可少的組成部分,但其開設方式不能采用傳統的教學方法,而應設計出一種項目教學或稱為專題講授的形式來進行。首先,要講透基礎部分,筆者認為可以分成單片機的內部結構、單片機的指令系統、程序編寫的基本思想、硬件接口構建等四個專題進行。其次,要針對課程特點,做好五個簡單項目,如外部中斷的使用、定時器中斷的使用、并口的擴展、串口通信、ad和da轉換。最后,要對相關知識點全面整合,綜合演練,實戰2~3個較為復雜的綜合性項目,進行原理圖分析、算法設計和程序分析,并制作出作品進行演示。按這種思路設計,理論教學大致課時數為36~48個課時,實驗課時數為24~36個課時。
據此分析,實驗教學則應充分重視設計性實驗的開設。與理論教學相對應,每講完一個項目,就要依托該項目開設一個設計性實驗,每個實驗3~5個課時。通過簡單的5個項目和較復雜的2~3個項目的訓練后,學生能掌握單片機開發和設計與實物制作的基本方法和技能。當積累了2~3年后,有了很多已成功的項目可參照時,不同的學生就可以選做不同的設計性項目。在進行單片機原理與接口技術的課程設計時,則應要求學生在設計性實驗的基礎上進一步深化,將多個部分綜合在一起設計制作一個更復雜、具有較完備功能的實際系統。這是一個由理論出發,通過基礎實驗、簡單的設計性實驗、復雜的設計性實驗,最后完成復雜的課程設計過程,符合循序漸進的教學規律,實現了該課程理論與實踐的完美結合。在此過程中,設計性實驗的開設基本覆蓋了單片機原理與接口技術課程的所有知識點,使學生牢固掌握基本理論,熟練掌握基本設計思路,綜合應用基本設計方法,從而達到學以致用的根本目的。
2.驗證性實驗與設計性實驗的銜接。驗證性實驗是指為驗證已經學習過的理論知識所設置的實驗;設計性實驗是指給定實驗目的要求和實驗條件,由學生自行設計實驗方案并加以實現的實驗。驗證性實驗作為一種傳統的教學方法,在現在的實驗教學中也還有一定的作用,可為設計性實驗的開設提供一些必要的基礎。現在的驗證性實驗一般是在相應的實驗箱上完成,通過開設1~2個驗證性實驗可讓學生了解單片機的基本構成和基本工作原理,所以在開設設計性實驗前開設驗證性實驗是非常必要的。同時,一些設計性實驗的開設可在實驗箱上對驗證性實驗進行改造而成,特別是對于開始的簡單的設計性實驗更是如此。比如一些驗證性實驗,所有的電路硬件在實驗箱中是現成的,同時給出相應的實驗程序范例,學生就可以在實驗箱上進行驗證,對所做實驗的功能進行分析。教師只需要在理論教學時將程序流程圖和涉及的算法講述清楚,最后要求學生去編寫程序,然后再進行功能驗證即可。采用這么一種由驗證性實驗作為基礎并進行改造的方法對于以基本原理的掌握為目標的簡單的設計性實驗具有很強的可操作性,有利于驗證性實驗到設計性實驗的自然銜接。
3.課堂與課外的銜接。設計性實驗開設要做好課堂與課外的銜接。因為設計性實驗是要學生自行設計實驗方案并加以實現的實驗,所有的實驗方案不可能僅在幾個課時的實驗課上完成,主要工作要在課外完成。一方面,實驗方案的制訂、原理圖的設計、實物的制作等主要在課外完成,實驗課中主要是在教師的指導下進行調試和測試。另一方面,設計性實驗很難一次性成功,往往需要多次嘗試、反復修正才行,這些必須在課外完成。要使設計性實驗真正達到較好的效果,除了在理論教學中要注重和實驗教學銜接外,課外的銜接尤其重要,要做好實驗室開放,讓學生在課外能夠較方便地利用實驗室的資源,也應鼓勵學生采購一些比較簡單的單片機開發工具,如簡易開發版、燒錄器等。
4.評價標準的再定位與評價體系建立的思路。驗證性實驗往往只涉及一門課程的一個章節或一個知識點的內容,學生通過驗證性實驗,可以使所學理論知識具體化和形象化,加深對所學知識的理解與掌握,培養基本動手能力。設計性實驗突出它的自主設計性,可以是單一知識的運用,也可以是多知識點的綜合運用,給出實驗目的、要求和實驗條件,由學生自行設計實驗方案并加以實現,所以設計性實驗帶有試探性、研究性,在時間上也需要課內與課外相結合。
由于驗證性實驗與設計性開設的目標不同,所以最終的考核方式也不同。對于驗證性實驗,教師可以直接根據學生所做的實驗報告評判其實驗成績。傳統的做法是百分制。一般每個實驗成績包括三個部分:實驗預習(20分)、實驗操作(40分)、實驗報告(40分)。使用傳統的百分制,可以評價學生是否掌握了基本理論和設計方法。但設計性實驗所涉及的知識點數量不同,綜合運用的效果不同,設計方案是否得當,步驟是否簡易可行,實驗的成本、效率是否令人滿意等等,都不能一概而論,因此需要結合各方面進行綜合的評定。設計性實驗的考核要貫穿這樣一個原則:淡化結果,注重過程。對于設計性實驗我們更重視學生在整個設計過程中的表現,而測定結果只作為考核的次要因素。學生在設計方案中是否有獨到新穎的想法,整個實驗思路邏輯是否清楚,實驗過程是細節嚴密還是顧此失彼,結果是否可信等都是評定設計實驗成績的重要因素??己酥幸浞止膭詈涂隙▽W生在設計過程中所表現出的敢于挑戰、主動學習、大膽創新的精神,以及由此帶來的思維水平和實踐水平的全面提高。
因此,設計性實驗不宜采用傳統的百分制,筆者認為,宜采用優、良、中、及格、不及格5個檔次來進行評定。首先明確“優”和“及格”的標準,在“優”的標準下,適當下降一點作為“良”的標準,“及格”標準高一點作為“中”,達不到“及格”標準的就判定為“不及格”。比如,每一個項目都設定多個指標,完全達到指標并有所創新的評為“優”;完全達到指標而無創新的可評為“良”;實現主要指標可評為“中”;實現部分指標,能體現設計者掌握了基本相關基礎知識則可評為“及格”;沒有實現任何指標,或沒有做的評定為“不及格”。這樣就應在設定實驗指標上著手,針對具體的實驗進行不同的設定,才能比較準確地定性評價學生的實驗能力,這一點仍需在實踐中不斷探索和改進。
四、結語
中圖分類號:G642 文獻標識碼:B
文章編號:1672-5913 (2007) 20-0077-04
1引言
目前,我國計算機專業的教學模式主要還是從基礎理論到專業理論,實踐環節較少,這就導致了學生厭學,眼高手低,本科畢業連基本的編程技能都不具備,從而,在就業市場上一敗涂地。這些效果又使在校學生更加沮喪,進一步影響其學習的積極性。中國要發展IT產業,必須改革計算機專業的教學模式。
印度是一個貧窮落后的發展中國家,軟件業的成就卻舉世矚目。印度的軟件人才主要是通過職業教育而不是高等教育來培養的,從而大大降低了培養成本和使用成本,縮短了培養周期。其教學不是按從基礎理論到專業理論,再到實習的路徑,而是把順序顛倒過來,先從做開始,在做的過程中,學生如遇到問題,再以此問題為基點去學習專業理論。學員一入學,便要做項目,培訓中心把所承接的大項目分解成一個個小項目,然后要求每個學員完成一個小項目,讓學員在完成項目的過程中學習。培訓中心的學員最后一年都在公司實習,積累工作經驗,同時也給企業提供深入了解雇員的機會。
我們借鑒印度發展軟件業的成功經驗,結合多年從事計算機監控的項目經驗和從事教學的心得體會,提出一種“趣味實用程序的演示+知識點+趣味實用程序的模仿+綜合訓練+學術論文”的教學模式[1],引導學生充滿興趣地鉆研技術,最后逐漸成為計算機監控方面的專家,并熟練掌握計算機專業的基礎理論與編程語言。
2計算機監控技術的特點與主要技術
計算機監控系統是以監測控制計算機為主體,加上檢測裝置、執行機構與被監測控制的對象共同構成的整體。在這個系統中,計算機直接參與被監控對象的檢測、監督和控制。檢測主要是通過傳感器和相應的輸入模塊來取得被監控對象的狀態數據,監督主要是對狀態數據進行分析后給操作員提供手動操作的參考,控制則是手動或按照一定的策略自動地對被監控對象執行相應的操作。
傳統的檢測與控制所使用的模塊一般采用RS-232接口,因為該接口簡單可靠。隨著網絡技術的發展,采用網絡接口RJ-45的模塊逐漸增多。監控用的計算機一般稱為主控機(或上位機),各種檢測與控制模塊或嵌入式系統一般稱為受控機(或下位機)。主控機軟件一般采用高級語言(如Visual Basic 6.0,簡稱VB)進行開發;受控機軟件沒有軟件界面,僅實現相關的邏輯功能,一般采用C語言、匯編語言等進行開發,通過調試后,再下載到受控機系統中。主控機通過RS-232/RJ-45接口與受控機通信,進行數據的查詢與命令的發送。各種控制策略、設備的狀態等的保存,都需要使用數據庫技術。因而,實現一個計算機監控系統,需要綜合使用諸多計算機的基礎理論與編程語言:計算機接口技術、計算機網絡、數據庫系統、VB與C語言等,利用計算機監控技術作為計算機專業實踐訓練的主線,具有很高的操作性和極大的意義。
3仿真軟件的設計
學習計算機監控技術,需要購買相應的硬件模塊,從而在一定程度上制約了該技術的推廣。本文提出了一個基于RS-232的仿真模塊的可視化模型,在此基礎之上設計了可視化的仿真數字I/O模塊,模擬量輸入模塊,并設計了對應的通信協議。主控軟件與仿真模塊之間的通信通過虛擬串口實現,從而,達到在計算機房零成本搭建計算機監控系統平臺的效果。
RS-232/RJ-45協議轉換器可以用于實現計算機監控系統的遠程處理,也可以用于將普通的輸入模塊轉換為仿真的網絡傳感器。
3.1仿真模塊的可視化模型
基于RS-232接口的仿真模塊的可視化模型如圖1所示。模塊表示區用來模擬實際的模塊,對于數字量輸入模塊(Digital Input Module,DIM),輸入開關根據設定的時間隨機閉合/打開,并通過圖形表示;對于數字量輸出模塊(Digital Output Module,DOM),用有源電路回路表示輸出開關的狀態,例如,開關閉合,播放鈴聲或燈亮等;對于模擬量輸入模塊(Analog Input Module,AIM),用圖形表示檢測回路,并在檢測點旁邊顯示溫度的原始數據。每個模塊都設置數據接收和發送指示燈,顯示數據收發的狀態。
功能按鈕區為系統設置按鈕和關閉程序按鈕。系統設置主要完成串行通信的端口號、波特率、校驗碼、結尾碼、模塊地址等的設置,對于DIM模塊,還需要設置隨機切換輸入開關所需要的時間段。
協議描述區顯示本仿真模塊適用的通信協議,包括協議的格式及其具體的含義。
數據接收區顯示接收到的主控程序發送的原始數據包,以字節形式顯示;數據響應區則發送對應的響應數據包,也是以字節形式。
利用此可視化模型設計的軟件界面,使用方便,動態效果好,仿真模塊的開關狀態、溫度數據、數據收發狀態以及傳輸的數據均一目了然。與實物模塊相比,不需要物理連線,也不需要信號發生器與萬用表來產生信號和測量狀態與數據,對于通信協議,也不需翻閱手冊。
3.2通信協議的設計
相同類型(或廠家)的模塊一般采用相同的前導字符,EOT是一個特殊的ASCII字符(0x04),常被用做控制字符,這里的仿真模塊全部采用EOT作為前導字符。
計算機所連接的I/O模塊比較多,CPU為了與連接的設備相互溝通,必須給設備設置一個編號,從而使CPU可以通過每個設備獨一無二的編號與不同的設備進行溝通,這個設備編號就是地址,用ADD表示,地址占用一個字節。
功能碼主要包括讀功能碼(用RD表示)和寫功能碼(用WD表示)。RD用字符“R”(0x52)表示,WD用字符“W”(0x57)表示。
BCC為數據塊校驗碼,一般有Xor、Add、CRC、CheckSum幾種。Xor與Add分別是異或與累加和,占一個字節的長度;CRC與CheckSum分別是循環冗余校驗碼與TCP/IP協議簇中所使用的累加求補校驗碼,分別占兩個字節。這里的仿真模塊提供4種數據塊校驗方式,根據程序設置進行選擇。
不少模塊以回車CR(0x0d)作為結尾標志EM(End Message),而TCP/IP協議簇(如HTTP,POP3等)較多地采用CRLF(0x0d0a)作為結尾標志,這里的仿真模塊也提供這兩種結尾標志,根據程序設置進行選擇。
協議舉例。讀取仿真模塊狀態的命令協議如圖2所示,其中,ADD的范圍為1至255,可由程序進行設置,這樣,一臺主控設備可以連接多達255個虛擬模塊。BCC和EM的種類也可以根據需要由程序進行設置。
3.3RS-232/RJ-45協議轉換器
該協議轉換器的主要功能是用軟件轉換器來替代硬件轉換器,實現串口數據與網口數據的直接轉發,不涉及到協議的變換。串口只要進行常規的設置,與所連接設備的串口參數一致。由于主控機與嵌入式模塊之間一般采用串口進行連接,另外,數據采集模塊也大部分采用串口,因而,通過該協議轉換器,可以將此類串口設備連接到Internet,進行遠程處理。AIM模塊與該協議轉換器配合,可以轉換為一個開關量輸入的網絡傳感器。
3.4虛擬串口的使用
除了跟內置的Modem通信,一般地,進行串行通信的調試都需要RS-232連接線。參考文獻[2]提供了虛擬串口驅動程序,模擬實際的RS-232接口,可以在沒有物理RS-232接口和電纜的情況下,進行串行通信的調試,并且,還可以模擬硬件引腳信號的變化。
4教學模式的具體實現
重視教材建設和教學方法的研究,在教學過程中重視由實踐而激發學生對相關理論的興趣,再用提高了的理論水平來指導新的實驗和實踐活動。傳統的教學模式在實踐環節上的缺乏與不足也與今天社會人才市場急功近利的需求遠遠不能相適應。長期以來,我們培養的學生存在著“什么都學過,卻什么都不會”的尷尬局面,專業教育和教材與市場需求嚴重脫節。事實上,學生就業難并不是就業市場不需要人才,其根源還是教學的現狀所致[3]。
本文采用“趣味實用程序的演示+知識點+趣味實用程序的模仿+綜合訓練+學術論文”的教學模式,在講解新的課程的時候,首先演示程序,例如,用主控程序對仿真數字I/O模塊進行監控,讓學生觀察輸入開關量的變化,可以導致輸出開關量的變化,并可以看到指示燈的亮與滅,聽到電鈴的響與停,通過實物激發學生的興趣,為學生樹立一個目標:要實現該系統,需要掌握哪些技術?從而引出本課程中涉及的主要相關技術。
4.1C語言和匯編語言的應用
C語言是許多高校為計算機專業學生設置的第一門計算機程序設計語言。學習一門語言,不是學習其語法,而是要學習利用該語言去解決問題的方法,從而培養相關的能力。通信是計算機監控系統的關鍵技術,為了確保數據傳輸的可靠性,制訂了通信協議,引入了校驗碼與結尾碼,如果收到的數據,其頭字節、校驗碼或結尾碼錯誤,一般不進一步處理,而是直接丟棄該數據。
可以利用C語言設計異或校驗碼的生成程序,即對給定的一批字節,計算其異或校驗碼;對于含異或校驗碼的一批字節,編寫子程序檢查是否正確。同理,可以編寫其它校驗碼處理程序。在此基礎之上,進一步講解在一個C語言項目中集成子程序的方法。如果學生掌握了這些方法,就基本掌握了用C語言開發受控機軟件的80%以上的技術。
匯編語言是符號化了的面向機器的語言,比較枯燥??梢杂脜R編語言來生成校驗碼與檢查數據是否正確,通過調試,讓學生明確各個寄存器的作用。在字節處理方面,可以用0表示開關打開,1表示開關閉合,在置位和復位某位時,不能影響其它位的值。
4.2計算機接口技術的應用
在計算機接口中講解“串行通信技術”時,首先演示一個“支持來電顯示的多賬號撥號器”,可以讓學生一鍵撥號──201卡與IP卡及所撥打的長途電話,只要一鍵即可完成,還支持來電顯示。通過演示,激發學生的學習興趣,讓學習成為其需要;然后,講解知識點,讓學生模仿軟件的開發。
可以通過匯編語言設置串口參數,對串口進行初始化,然后,發送字節數據,控制仿真模塊的輸出開關,通過聲光效果觀察程序運行的結果,這比觀察單純的數據變化要形象直觀,對學生更有吸引力。
4.3計算機網絡的應用
在C語言、匯編語言,以及計算機接口技術中都涉及到字節數據流,這就是協議及主控機與受控機之間的約定。通過串行通信協議,可以自然過渡到TCP/IP協議,加深學生對協議的理解。
在網絡編程方面,可以演示一個充當客戶機的POP3密碼攻擊程序,讓學生在增強信息安全意識的同時,學習基于Socket的客戶機與服務器程序的設計。3.3節中的協議轉換器,就是通過客戶機/服務器編程,實現網絡數據與串行通信數據的無縫轉換。這個協議轉換器雖然功能簡單,代碼簡單,但是,作用非常大,可以用來對計算機監控系統進行遠程調試與維護。
4.4VB與數據庫的應用
有了仿真模塊,就可以采用VB開發主控程序。VB是一門快速語言,采用VB編程,學生可以很快入門,有利于增強學生學習編程的自信心。VB可以很方便地設計各種表單界面,通過MSComm32控件和Winsock控件,實現串行通信和網絡通信,從而與受控機或模塊建立通信,完成查詢和控制功能。VB也可以很方便地調用數據庫,用數據庫來存儲控制策略、通信協議及設備的狀態數據、報警記錄等,對數據庫進行各種操作。通過主控程序的開發,可以提高對計算機接口技術、計算機網絡技術與數據庫的感性認識,從而加深理論方面的理解。
5結束語
計算機監控系統廣泛應用于眾多領域。本文提出了“趣味實用程序的演示+知識點+趣味實用程序的模仿+綜合訓練+學術論文”的教學模式,通過程序演示,提高學生的學習興趣,為學生樹立一個學習目標,然后,講解知識點,讓學生模仿相應的程序,再進行綜合訓練。同樣是學習相同的課程,但是我們在其中融入了計算機監控技術,設計了仿真模塊,可以在計算機房零成本搭建計算機監控系統平臺,通過我們的教學,學生畢業后,可以直接作為項目負責人或技術骨干參加計算機監控系統項目的開發。進行深入學習后,學生也可以發表計算機監控方面的學術論文。
目前,我校已經開設了“計算機監控技術與系統開發”課程,實踐表明,該課程的開設,將計算機專業的若干專業平臺課有機地融合到一起,對提高學生的學習興趣,加強技能的培養,加深對理論的理解,提高就業率具有重要意義。
參考文獻
[1] 馬玉春. 計算機監控技術與系統開發[M]. 北京:清華大學出版社,2007.
[2] Virtual Serial Port[EB/OL]. /products /vspdxp/,2007-7.
[3] 周蘇,王文. 軟件工程實驗教學的設計與創新[J]. 計算機教育,2006,(10).
作者簡介
馬玉春(1969-),男(漢族),江蘇南京人,博士,東北大學秦皇島分校計算機工程系教學主任。
E-mail:
聯系方式:東北大學秦皇島分校計算機工程系,郵編066004