李雙喜,張玉山,張永鋒,王 岳,王 磊,孫文洋
(安徽科技學院電氣與電子學院,安徽 蚌埠233030)
應用型本科高校電子信息工程專業(yè)人才培養(yǎng)方案中,CPLD/FPGA與MCU、DSP、ARM芯片開發(fā)是電子信息系統(tǒng)數(shù)字化、智能化、網(wǎng)絡化開發(fā)四大平臺,掌握CPLD/FPGA與MCU、DSP、ARM芯片工程開發(fā)實踐能力對解決復雜電子信息工程問題具有重要作用。CPLD/FPGA芯片開發(fā)典型特征是基于硬件平臺上的硬件語言(HDL)開發(fā),而MCU、DSP、ARM都是側(cè)重于基于微處理器平臺上的軟件開發(fā);CPLD/FPGA芯片開發(fā)由于其硬件加速的良好性能,在高速圖像、語音數(shù)據(jù)處理、通信以及實時控制、信息測量中具有十分重要的地位[1-2]。
CPLD/FPGA課程主要掌握EDA技術(shù)中的三要素—開發(fā)語言(HDL)、開發(fā)工具和芯片,課程通過一系列的數(shù)字系統(tǒng)工程開發(fā)實踐在掌握這種高效設計技術(shù)的同時達到能夠用于解決電子信息工程問題[3-4]。
為更好地促進學生在掌握CPLD/FPGA開發(fā)技術(shù)基礎上,能夠?qū)⒃摷夹g(shù)運用于解決實際工程問題而獲得高效的工程開發(fā)實踐經(jīng)驗體驗,并能夠獲得“學以致用”的目的,我們設計了從簡單到復雜,從模塊到系統(tǒng)的典型案例驅(qū)動,體現(xiàn)CPLD/FPGA在控制、通信和信息處理中的典型工程應用,教學實踐上很好地解決了從器件、技術(shù)到工程開發(fā)的需求訓練,教學效果與學習興趣得到極大提升。
以下通過一個模塊案例和一個系統(tǒng)案例來分析案例教學的改革思考。
線性分組編碼理論基礎屬于信息理論與編碼課程中一個知識領(lǐng)域,本案例設計從CPLD/FPGA課程實踐能力培養(yǎng)為出發(fā)點,有效地將本專業(yè)的數(shù)學基礎(線性代數(shù))、數(shù)字電路、信息理論與編碼等課程的知識點進行有效銜接,融合貫通,服務于工程項目需求。通過線性分組編碼與解碼模塊設計的案例教學,在加強了對CPLD/FPGA芯片內(nèi)部結(jié)構(gòu)的理解的同時,通過工程需求將本專業(yè)的相關(guān)課程的知識進行有效融合,使課程教學內(nèi)容的相互支撐與運用體現(xiàn)出來。加強了學生對課本理論知識的認知,并能有效思考如何將理論問題變成可實現(xiàn)的技術(shù)問題。
在通信系統(tǒng)中,由于信道存在大量的噪聲和干擾,使得經(jīng)過信道傳輸?shù)男畔⒃诮邮斩伺c發(fā)送端可能存在誤碼,在工程上常采用交錯控制技術(shù)實現(xiàn)對誤碼率的控制,減少信息傳輸過程中的出錯。差錯碼技術(shù)是在發(fā)送端的信息序列中插入相應的校驗碼,使原來的相關(guān)性很小的信息碼之間產(chǎn)生一定的相關(guān)性,從而在接收端利用相關(guān)性實現(xiàn)對傳輸信息碼的差錯檢測。
問題:設計一個(7,4)線性分組碼的編譯碼電路。
模型:線性分組編碼是采用增加校驗碼的差錯控制方式的新的編碼結(jié)果,在這種結(jié)構(gòu)中每個碼組(字)只與該碼字的信息碼元相關(guān),即分組碼。分組碼內(nèi)的規(guī)律是線性的,即線性分組碼。
將K個信息位分成一組單獨處理,按照一定的規(guī)律給每個信息組增加N-K個檢驗碼,組成字長為N的二進制碼,即(N,K)分組碼,其基本的編碼與解碼數(shù)學關(guān)系為式(1):
C=U·G
H·CT=0T
(1)
HyT=HeT=0→表示無差錯
HyT=H(H?e)T=HeT=sT
s=eHT
(2)
G:線性分組編碼的生成矩陣,是設計編碼器的關(guān)鍵;
H:線性分組解碼的監(jiān)督矩陣,是設計解碼器的關(guān)鍵;
C:發(fā)送端的信息碼字;
e:表示傳輸過程的差錯;
y:表示接收端的碼字;
s:定義為校正子,即伴隨子。
根據(jù)(7,4)線性分組碼的編譯碼模型,因此得到編碼器關(guān)系如式(3),接收端得到的誤差算子如式(4)所示。
(c0,c1,c2,c3,c4,c5,c6)=
(3)
(s0,s1,s2)=
(4)
根據(jù)誤差算子,可以得到:
c=y-e
(5)
采用VHDL語言來實現(xiàn)上述過程,不難寫出:
通過本模塊案例教學:第一,解決了如何清晰認識信息理論與編碼中的7-4線性分組編解碼理論規(guī)則中矩陣運算過程;第二,在通用的矩陣運算中,解決了二進制信息矩陣運算實現(xiàn)的數(shù)字電路關(guān)鍵單元-乘法器與加法器;第三,認清在bit乘法與求和中的核心數(shù)字邏輯部件是異或門(XOR);第四,更清晰認知了異或門(XOR)是CPLD/FPGA器件結(jié)構(gòu)內(nèi)部的重要單元的結(jié)構(gòu)特點,從而更清晰地認識了CPLD/FPGA器件內(nèi)部結(jié)構(gòu)和特點。
圖1 編碼器的VHDL代碼與邏輯符號
圖2 解碼器的VHDL代碼與邏輯符號
三相異步電動機在工作過程中,由于振動、導線連接處松動等實際原因可能造成缺相故障,而缺相故障的后果往往會導致電動機過熱燒毀的問題,如何解決三相異步電動機的缺相檢測問題并進行保護是一個實際工程問題。
CPLD器件具有處理邏輯問題的硬件優(yōu)勢,相對單片機而言其處理速度和抗干擾能力在強電系統(tǒng)中具有明顯的運用優(yōu)勢。
問題:設計一臺三相異步電動機缺相檢測儀。
模型:三相異步電動機的供電電源是三相對稱交流電,其關(guān)系為式(6):
u1=Umsinωt
u2=Umsin(ωt-120°)
u3=Umsin(ωt+120°)
(6)
根據(jù)三相異步電動機的工作,其電源的相序只有兩種可能性,一是正相序,二是逆相序。
為能夠使用CPLD/FPGA器件進行工程設計,電動機系統(tǒng)是一個強電環(huán)境中非數(shù)字系統(tǒng)特征,要進行處理則需要的基本知識:
1) 三相異步電動機工作的380 V電壓取樣變換為信號處理的低壓問題,這是電路原理課程知識問題。
2) 電網(wǎng)的正弦交流電是正弦變換關(guān)系,而CPLD/FPGA處理的是數(shù)字信號,需要解決模擬信號的數(shù)字化問題,這是與數(shù)字電子技術(shù)課程緊密相關(guān)的知識點。
3) CPLD/FPGA處理后的數(shù)字信號要驅(qū)動繼電器等執(zhí)行器對故障電動機負載進行切除,這里涉及功率驅(qū)動問題。
根據(jù)工程設計需要,采用大電阻分壓處理將380V電壓轉(zhuǎn)換為低壓,進而通過具有正反饋的電壓比較器獲得TTL邏輯信號,通過獲得三相邏輯信號送入CPLD器件進行邏輯處理,判斷缺相故障進而驅(qū)動繼電器切除故障電動機,達到保護目的。
圖3 基于CPLD的電機缺相檢測
圖4 基于CPLD的電機缺相檢測模塊與實現(xiàn)
針對該案例的工程設計要求,運用電路、模擬電子技術(shù)、數(shù)字電子技術(shù)解決好取樣電路、比較電路、功率驅(qū)動單元的設計,以CPLD器件開發(fā)為檢測控制核心單元達到訓練解決復雜工程問題的能力訓練。
通過案例驅(qū)動,充分考慮解決復雜工程問題的能力和素質(zhì)培養(yǎng)要求,本課程以CPLD/FPGA技術(shù)為平臺,將本專業(yè)的前期數(shù)學基礎、專業(yè)基礎以及專業(yè)課程知識體系和內(nèi)容的內(nèi)在聯(lián)系與關(guān)系進行有機融合,達到“學以致用”的目的,對工程知識運用,問題分析能力、研究和解決工程問題綜合素質(zhì)訓練將起到積極的作用,促進了課程教學目標的有效達成。