具有學(xué)習(xí)功能的遙控機器人編碼芯片的ASIC設(shè)計
ASIC是根據(jù)某一特定用戶要求和特定電子系統(tǒng)的需要而設(shè)計、制造的集成電路。ASIC按照設(shè)計方法的不同可分為全定制ASIC,半定制ASIC和可編程ASIC(也稱為可編程邏輯器件)。本文所設(shè)計的遙控機器人編碼芯片是全定制ASIC芯片,先要定義編碼芯片上所有晶體管的幾何圖形和工藝規(guī)則,最后將設(shè)計結(jié)果交由IC廠家掩膜制造完成[1][2]。設(shè)計的編碼ASIC提高了遙控機器人的性能,由于采用了脈沖寬度調(diào)制技術(shù)(PWM),解決了同類芯片電路中的碼間干擾,增強了系統(tǒng)工作的穩(wěn)定性,提高了安全性[3][4]。該芯片采用N阱0.5 ?滋m硅柵工藝,采用手工雙層金屬布線,工藝成熟、穩(wěn)定可靠,芯片的面積利用率高、速度快、功耗低。
1 芯片功能定義
在無線遙控系統(tǒng)領(lǐng)域里,編碼芯片和解碼芯片分別完成信號的功能編碼和解碼,并驅(qū)動相應(yīng)的控制功能。本文設(shè)計的遙控機器人編碼芯片管腳應(yīng)用分布如圖1所示。設(shè)計的編碼芯片需完成地址碼學(xué)習(xí)請求和相應(yīng)的8個控制功能的編碼和發(fā)送,當(dāng)STUDY鍵按下時,編碼芯片輸出端(DO)迅速發(fā)送地址碼學(xué)習(xí)請求信號,當(dāng)STUDY松開時,且有控制功能鍵按下時,編碼芯片輸出端(DO)就會發(fā)送對應(yīng)的8 bit控制功能請求信號,這8個控制功能信號包括:向前(FORWARD)、向后(BACKWARD)、加速(TURBO)、向右(RIGHT)、向左(LEFT)、附加功能1(FUNCTION1)、附加功能2(FUNCTION2)、附加功能3(FUNCTION3)。FORWARD、BACKWARD、TURBO、RIGHT、LEFT控制解碼芯片所屬載體的基本控制動作,附加功能1~附加功能3可以用作功能拓展,例如機器人的前后燈亮滅控制,輪子自動收起等,相應(yīng)可以擴展出多種實際應(yīng)用?;谝陨匣驹O(shè)想可確定芯片應(yīng)具有的基本輸入輸出:1個清零控制端RESET;1個地址碼學(xué)習(xí)請求輸入STUDY,用于地址碼學(xué)習(xí)功能請求,相對于其他請求功能,它具有最高優(yōu)先權(quán)。8個控制功能輸入:向前(FORWARD)、向后(BACKWARD)、加速(TURBO)、向右(RIGHT)、向左(LEFT)、附加功能1(FUNCTION1)、附加功能2(FUNCTION2)、附加功能3(FUNCTION3),用以確定控制功能信號;1個工作狀態(tài)輸出端LO,外接一個發(fā)光管用于表示編碼芯片是否處于工作狀態(tài);1個幀信號發(fā)送端DO;另外內(nèi)部振蕩電路需要外接大電阻,需要設(shè)置振蕩輸入和輸出管腳OSCI、OSCO用于外接大阻值電阻,或接可變電阻,用來進行系統(tǒng)頻率的調(diào)節(jié);電源VDD,地VSS,確定以后的遙控編碼芯片外部管腳及對應(yīng)功能見表1。
2 信號的幀結(jié)構(gòu)
遙控機器人編碼芯片的幀結(jié)構(gòu)如圖2所示,它由同步碼、16位地址碼、2位狀態(tài)碼、8位功能碼、奇偶校驗碼及結(jié)束位32個碼元構(gòu)成,設(shè)計中的基帶碼型以脈沖寬度調(diào)制(PWM)技術(shù)采用占空比3/4的矩形脈沖表示“1”,占空比1/4的矩形脈沖表示“0”(圖3)。幀同步碼是一個幀周期信號的標(biāo)志,幀同步位為“1110”; 幀結(jié)構(gòu)中有16位地址位,在地址碼學(xué)習(xí)的過程中,編碼芯片向解碼芯片發(fā)送具有地址碼學(xué)習(xí)請求功能信號,其中有16位地址碼為編碼芯片所要求解碼芯片學(xué)習(xí)的地址碼[5]。當(dāng)?shù)刂反a學(xué)習(xí)成功后,編碼芯片向解碼芯片發(fā)送具有控制功能的請求信號,其中的16位地址碼必須與解碼芯片學(xué)習(xí)后的地址碼進行判斷,如果相同,就進行相應(yīng)的控制功能驅(qū)動,否則將此控制功能請求信號作無效信號處理。狀態(tài)位X1,X2分別為“01”和“11”時表示地址碼學(xué)習(xí)請求和控制功能驅(qū)動請求。幀結(jié)構(gòu)中設(shè)置的功能位對應(yīng)遙控機器人的8個控制功能:向前(FORWARD)、向后(BACKWARD)、加速(TURBO)、向右(RIGHT)、向左(LEFT)、附加功能1(FUNC-TION1)、附加功能2(FUNCTION2)、附加功能3(FUNCTION3),并按照以上順序排列。另外,當(dāng)狀態(tài)為地址碼學(xué)習(xí)請求時,該8位功能碼必須全為零。當(dāng)狀態(tài)為控制功能請求時,功能碼自身必須具有一定的互斥性。例如,控制功能不能出現(xiàn)同時向左向右或同時向前向后,如果出現(xiàn)這種情況,則認為出現(xiàn)編碼出錯,解碼部分將會丟棄該幀,這是符合實際情況的。因此在解碼芯片電路設(shè)計中,分別增加了地址碼學(xué)習(xí)時功能數(shù)據(jù)檢測位電路和控制功能驅(qū)動時功能數(shù)據(jù)檢測電路。奇偶校驗位采用偶校驗方式,對功能數(shù)據(jù)位進行校驗,當(dāng)功能數(shù)據(jù)位出現(xiàn)偶數(shù)個有效位(高電位“1”)時,校驗位為低電位“0”;當(dāng)功能數(shù)據(jù)位出現(xiàn)奇數(shù)個有效位時,校驗位為高電平“1”,奇偶校驗位為幀中第31位。結(jié)束位為一位高電位“1”,表示一幀的結(jié)束,未檢測到結(jié)束位時同樣丟棄該幀。
3 編碼芯片設(shè)計
遙控機器人編碼芯片由振蕩電路、時序產(chǎn)生電路、按鍵防抖動電路、上電復(fù)位電路(包含移位計數(shù)和狀態(tài)機電路、控制功能信號的鎖存電路、地址碼學(xué)習(xí)請求信號輸出電路、控制功能請求輸出電路)、位同步輸出電路等模塊構(gòu)成。編碼系統(tǒng)框圖如圖4所示。編碼芯片模塊主要有兩大功能,功能一:發(fā)送地址碼請求信號,為了使編碼芯片與相應(yīng)的解碼芯片形成一一對稱的地址碼學(xué)習(xí)關(guān)系,首先保證解碼芯片是在地址碼學(xué)習(xí)允許的情況下(SRC按下),然后按下地址碼學(xué)習(xí)請求按鍵STUDY,編碼芯片輸出端DO就會輸出地址學(xué)習(xí)請求功能的32幀周期信號“11101010101010101010010000000001”的編碼信號“1110-1110-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1000-1110-1000-1000-1000-1000-1000-1000-1000-1000-1000-1110”,解碼芯片接收到請求信號后進行解碼,然后進行檢測和判斷,再進行地址碼學(xué)習(xí),將解碼芯片的16位地址鎖存器固定為“1010101010101010”。功能二:地址碼學(xué)習(xí)成功之后,分別松開SRC和STUDY按鍵,根據(jù)需要輸入8位控制功能信號,編碼芯片將功能控制幀周期信號進行編碼,然后再輸出,發(fā)送給解碼芯片,解碼芯片再進行解碼驅(qū)動相應(yīng)的控制功能。如果無任何輸入狀態(tài),編碼芯片輸出零信號的編碼信號。其整個流程如圖5所示。最后編碼系統(tǒng)完成由地址碼學(xué)習(xí)請求和控制功能請求信號的編碼發(fā)送。
4 各模塊電路設(shè)計和功能仿真
根據(jù)遙控機器人編碼模塊總體設(shè)計框圖,在Quartus II環(huán)境下,使用硬件描述語言Verilog-HDL及原理圖對整個編碼系統(tǒng)各模塊進行行為級描述,最后通過Synplify軟件對硬件描述語言Verilog -HDL進行綜合,得到門級電路。圖6為編碼系統(tǒng)的核心頂層模塊組合,其中fangdd為按鍵輸入信號防抖動模塊,clk_div128k為分頻模塊,為系統(tǒng)提供頻 率為2 kHz的時鐘;fenpin_count是四進制加法計數(shù)器和clk_2k的四分頻模塊;send1是請求信號的位同步模塊,其同步頻率為512 Hz,位同步信號以幀周期形式輸出, code1_4是幀周期信號的碼元編碼模塊,將原代碼編碼成適合信道中傳輸和接收的基帶信號。
完成編碼芯片各模塊的行為級描述之后,進行功能仿真驗證。首先按下reset鍵復(fù)位清零,使芯片中所有的寄存器和鎖存器置零,然后發(fā)送一個地址碼學(xué)習(xí)請求信號(study鍵按下,相對于控制功能請求來說,具有更高的優(yōu)先級),此時send1模塊判斷信號為地址碼學(xué)習(xí)請求,然后send1的輸出端輸出具有學(xué)習(xí)請求功能的幀周期信號“1-1-1-0-1-0-1-0-1-0-1-0-1-0-1-0-1-0-1-0-0-1-0-0-0-0-0-0-0-0-0-1”。其中前4位“1-1-1-0”為幀頭信號;第5位至第20位為發(fā)送出去的16位地址碼;第21位和第22位為請求狀態(tài)位,“01”表示地址碼學(xué)習(xí)請求,“11”表示功能控制請求,此時為地址碼學(xué)習(xí)請求狀態(tài),即為“01”;第23位至第30位為功能數(shù)據(jù)位,由于此時為地址碼學(xué)習(xí)請求狀態(tài),故該8位功能數(shù)據(jù)位為零;第31位為奇偶校驗位,是用于判斷功能數(shù)據(jù)位的奇偶情況;第32位為結(jié)束位,是幀周期結(jié)束標(biāo)志。然后經(jīng)過code1-4模塊進行碼元編碼輸出,由仿真結(jié)果可知相應(yīng)的碼元為“1110-1110-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1110-1000-1000-1110-1000-1000-1000-1000-1000-1000-1000-1000-1000-1110”。隨后在沒有地址碼學(xué)習(xí)請求時,輸入控制功能信號,輸出的幀周期信號與地址學(xué)習(xí)請求幀周期相同,不同之處是:其一,地址碼與原來地址學(xué)習(xí)請求發(fā)送的地址碼一模一樣,它是用于與解碼芯片學(xué)習(xí)后的地址碼進行比較判斷,并不是用于地址碼學(xué)習(xí)之用;其二,功能數(shù)據(jù)位是相應(yīng)的控制功能輸入信號,并非全為零。此仿真過程中,輸入了地址碼學(xué)習(xí)請求、向右加速前進請求和向左后退請求,輸出端口分別輸出了相應(yīng)的幀周期信號,達到了設(shè)計效果。
5 編碼芯片的硬件驗證
軟件仿真是驗證系統(tǒng)電路設(shè)計正確性的第一道保障,但它只是對實際情況的一種軟件模擬,不能替代實際的硬件驗證。在ASIC設(shè)計過程中,常常需要對前端設(shè)計做FPGA原型驗證來確保設(shè)計的實際可行性。本平臺的主控制芯片采用了ATERA公司研發(fā)的Cyclone II系列EP2C8Q208N再加上EPCS4配置芯片。在Quartus II中分別將編、解碼芯片的核心電路圖(數(shù)字電路)輸入、輸出管腳絆定并進行編譯,生成相應(yīng)的*.pof文件,部分在可編程邏輯器件中無法實現(xiàn)的模擬電路部分被簡化掉,因為這些改變不會影響整個編解碼方案的功能。另外在下載界面中選擇AS模式(Actice Serial programming),通過串口下載線,將*.pof文件直接下載到EPCS4芯片中,然后主控制芯片EP2C8Q208C8N將調(diào)用配置芯片EPCS4中的軟硬件數(shù)據(jù),對整個編解碼電路進行相關(guān)的數(shù)據(jù)處理。系統(tǒng)所需的時鐘信號clk_2KHz、clk_512Hz、clk_128Hz都是由該核心開發(fā)板上的晶振提供的50 MHz分頻而來的。為了成功完成編碼芯片的FPGA硬件驗證,先制作10個輸入(RESET、STUDY、FOR-WARD、BACKWARD、TURBO、RIGHT、LEFT、F1、F2、F3)的外圍控制電路,然后將編碼芯片的核心電路下載到目標(biāo)芯片中。核心開發(fā)板上綁定的10個輸入端口分別用導(dǎo)線連接對應(yīng)的外圍控制電路的10個接口,輸出端(data out)接入示波器(安捷倫公司的存儲示波器:Agilent 1 160 A 600 M)信號輸入接口。先后按下外圍電路地址碼學(xué)習(xí)請求按鍵study和控制功能請求按鍵(forward、turbo、right),然后利用示波器分別抓取了地址碼學(xué)習(xí)請求和“向右加速前進”控制功能請求信號的編碼波形。觀察波形可知,編碼芯片的FPGA驗證系統(tǒng)與編碼芯片的T-spice仿真一樣,都能正確無誤地完成地址碼學(xué)習(xí)請求功能和控制功能請求功能,證明了編碼芯片電路設(shè)計的實際可行性。
6 版圖設(shè)計
遙控機器人編碼芯片的版圖設(shè)計采用N阱0.5 ?滋m硅柵工藝,其邏輯控制部分的最小線寬為0.5 ?滋m。為了使編碼芯片版圖在面積和性能上最優(yōu)化,整個版圖設(shè)計是調(diào)用預(yù)先設(shè)計好的各單元版圖模塊在taner-pro軟件上通過全手工布局布線的方式完成,大大減小了芯片面積。編碼芯片有16個輸入輸出壓焊塊,MOS管及阻容元件近5 591個,版圖總面積為1.241 mm×0.950 mm。解編碼芯片有22個輸入輸出壓焊塊,MOS管及阻容元件近6 282個,版圖總面積為1.310 mm×0.941 mm。最后對遙控機器人編碼芯片的版圖進行了整體的設(shè)計規(guī)則檢查(DRC),同時將版圖萃取的文件(bianma.spc和jiema.spc)與相應(yīng)原理圖萃取的文件(bianma.sp和jiema.sp)進行LVS(版圖與原理圖的一致性檢查)對比,結(jié)果一致[6]。最后提取GDS II文檔。
遙控機器人編碼芯片的研制,提高了集成度,比同類編碼芯片的外接元器件少,適合開發(fā)各種低成本遙控報警器及遙控系統(tǒng)。在具體的應(yīng)用中,只要增強無線射頻有效距離,就可將它移植到遠距離工作的工業(yè)遙控操作系統(tǒng)以及遙控作戰(zhàn)機器人、遙控裝甲車和無人駕駛戰(zhàn)斗機中,并具有很好的發(fā)展前景。
參考文獻
[1] 劉麗華,辛德祿,李本俊.專用集成電路設(shè)計方法[M].北京:北京郵電大學(xué)出版社,2001.
[2] 楊凱,崔炳哲.數(shù)字邏輯電路的ASIC設(shè)計[M].北京:科學(xué)出版社,2004.
[3] 肖景和,趙健.無線電遙控組件及其應(yīng)用電路[M].人民郵電出版社,1997.
[4] 何書森.實用遙控電路原理與設(shè)計速成[M].福州:福建科學(xué)技術(shù)出版社,2002.
[5] 王小華.具有學(xué)習(xí)功能的遙控賽車解碼器的ASIC設(shè)計[J].北京:航天控制,2009(5).
[6] 廖裕評,陸瑞強著.Tanner Pro集成電路設(shè)計與布局實戰(zhàn)指導(dǎo)[M].北京:科學(xué)出版社,2004.
評論