點矩陣小綠人 - kun shan...

33
1 實務專題報告 點矩陣小綠人 指導老師 :歐金池老師 班 級 :四電子四 A 作 者 :陳信豪 宋昇彥 學 號 :4970K063 4970K117 民國一百零一年五月二十日

Upload: others

Post on 24-Jan-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    實務專題報告

    點矩陣小綠人

    指導老師 :歐金池老師

    班 級 :四電子四 A

    作 者 :陳信豪 宋昇彥

    學 號 :4970K063 4970K117

    民 國 一 百 零 一 年 五 月 二 十 日

  • 2

  • 3

    摘要

    本專題主要分兩個部分,硬體和軟體兩大電路,製作點矩陣 LED 硬

    體和 CPLD 電路板硬體,CPLD 使用的型號是 EPM3064ALC44-10N,

    為勞委會數位乙級檢定指定晶片及電路,軟體部分也是使用勞委會數

    位乙級檢定指定之 QuartusII 軟體來編製。

    QuartusII這套軟體是Atelar 公司發展出來供給該公司CPLD零件晶片

    愛用者的所使用的IDE軟體,所以CPLD又可稱為複雜可程式邏輯裝置

    (Complex Programmable Logic Device, CPLD),CPLD適合用來實現各

    種運算和組合邏輯。一顆CPLD內等於包含了數顆的PAL(可程式陣列

    邏輯),各PAL間的互接連線也可以進行程式性的規劃、燒錄,CPLD

    運用這種多合一的整合作法,使其一顆就能實現數千個邏輯閘,甚至

    數十萬個邏輯閘才能構成的電路。

    軟體方面,使用Quartus II軟體來撰寫軟體這部分,Quartus II系統支援

    多種HDL格式轉換成邏輯電路,設計流程:設計輸入→合成→佈局佈

    線→時序分析→模擬→元件編成與佈線,最後利用Printer-port接線連

    接電腦硬體,把畫好的邏輯電路圖經過編譯器(Compiler)編譯後燒錄進

    去CPLD晶片裡,燒錄成功後,點矩陣的VCC腳和CPLD晶片的VCC腳

    分別接上電源供應器5V和3.3V,這樣就能在點矩陣LED上顯示動作

    了。

    http://zh.wikipedia.org/wiki/%E7%BB%84%E5%90%88%E9%80%BB%E8%BE%91http://zh.wikipedia.org/wiki/%E5%8F%AF%E7%A8%8B%E5%BC%8F%E9%99%A3%E5%88%97%E9%82%8F%E8%BC%AFhttp://zh.wikipedia.org/wiki/%E5%8F%AF%E7%A8%8B%E5%BC%8F%E9%99%A3%E5%88%97%E9%82%8F%E8%BC%AFhttp://zh.wikipedia.org/wiki/%E9%82%8F%E8%BC%AF%E9%96%98http://zh.wikipedia.org/wiki/%E9%9B%BB%E8%B7%AF

  • 4

    目錄 摘要……………………………………………………………………………………3

    目錄……………………………………………………………………………………4

    專題簡介

    1.實驗方法………………………………………………………………………5

    2.成品動作………………………………………………………………………5

    3.研究動機………………………………………………………………………6

    4.未來展望………………………………………………………………………7

    理論

    1.點矩陣 LED 顯示原理…………………………………………………………8

    2.點矩陣 LED 動作………………………………………………………………9

    3.七段顯示器……………………………………………………………………9

    4.脈波產生……………………………………………………………………10

    5.CPLD 特點……………………………………………………………………11

    6.硬體架構……………………………………………………………………12

    7.軟體應用………………………………………………………………………16

    8.流程圖…………………………………………………………………………19

    9.使用元件………………………………………………………………………22

    10.完成作品實體圖………………………………………………………………23

    致謝…………………………………………………………………………………25

    結論心得……………………………………………………………………………26

    建議…………………………………………………………………………………27

    附錄…………………………………………………………………………………28

    參考文獻……………………………………………………………………………33

  • 5

    專題簡介

    1.實驗方法

    首先先參考有關CPLD的介紹和專題應用的書,確定專題的題目之後製

    定製作內容、方法及所需的零件,接著把所有的硬體元件組裝起來,

    之後先檢查硬體方面是否有錯誤。首先設計一個CPLD邏輯裝置用來測

    試週邊介面電路是否有誤,因為這樣如果發生錯誤才能確定到底是硬

    體還是軟體方面出問體,經過這道程序確認硬體無誤後,就能判斷硬

    體無誤而是軟體方面要修改,這樣就不會毫無頭緒的除錯,再經由

    Quartus II這套軟體系統來撰寫VHDL程式、模擬電路,經過全部模擬成

    功後再利用printerport線電腦連接硬體來做燒錄動作,燒錄完成後測試

    點矩陣LED是否能夠成功的運作,等整體運作都無錯誤再把所有硬體

    裝置做個美觀布置完成作品 。

    2.成品動作

    起先在完成作品之前,是先除錯和檢查硬體電路,一開始在除頻這部

    分一直沒有辦法成功,導致點矩陣LED硬體看起來不是全亮就是全

    暗,結果後來有修改成功,在麵包版上再另外做個石英震盪器經由這

    個麵包上的石英振盪來做除頻功能就可以動作了,再由Quartus II這套

    軟體先撰寫程式再來把撰寫完的程式轉成邏輯電路圖,下一個步驟就

  • 6

    是設定CPLD的接腳(輸入輸出CLK接腳……) ,完成之後利用

    printer-port線透過電腦將編譯完成的程式燒錄到CPLD硬體裡面,這樣

    就成功地讓點矩陣LED顯示小綠人的動作,點矩陣顯示方式是採用掃

    瞄方式點亮,利用人眼有視覺暫留現象在該行影像消失前,再將要消

    失的影像點亮,如此人眼就不會查覺該影像曾經消失,而利用人類視

    覺暫留的原理,我們撰寫了4個小綠人不同動作的掃描程式,讓四個小

    綠人移動的分解動作,讓點矩陣上的影像看來是一個小綠人移動的連

    續動作。之後再寫一個小紅人站立的程式,還有寫七段顯示器9~0倒數

    的程式,然後在寫時間誤差讓小綠人的點矩陣滅10秒後再亮10秒,而

    小紅人的點矩陣則是和七段顯示器一起亮10秒之後在滅10秒,這樣小

    紅人和小綠人的動作就會變成,一方亮十秒之後換另一方亮十秒,這

    樣互相交替亮滅之下就跟我們在路上看到的紅綠燈一樣了。

    3.研究動機

    現生活中許多東西都走上數位化,為了因應複雜數位電路之需求,在

    單一可程式邏輯元件晶片內所能規劃的邏輯閘數目已被大幅提升。觀

    察這些交通號誌及廣告招牌,發現交通號誌跟招牌都是使用日光燈管

    或燈泡來發亮,但日光燈管和燈泡耗電量大且不易做變化,若能改用控

    制元件來控制點矩陣的 LED 來做變化就方便許多,所以我們就使用了

    點矩陣 LED 的多樣性及 LED 亮度較量與耗電量比日光燈管少且能增

    加明亮度及可隨意做變化等優點,來取代舊式的交通號誌及廣告看板,

  • 7

    因此要做變化也只須更改控制元件內的程式碼即可,這樣也能省去不

    必要的資源消耗

    4.未來展望

    小綠人小紅人點矩陣動作尚未同步,沒辦法像紅綠燈一樣倒數完動

    作,還可以加上語音效果,讓盲人能判斷現在是紅燈還是綠燈,也可

    以應用在廣播功能上,目前廣播都只有聲音,但如果加上語音和廣告

    字幕同步,這樣能改善廣播聽不清楚,或者是一些聽障朋友無法聽到

    聲音而不清楚廣播的內容的種種問題。或者是加上紅外線感測,

    因為人如果身旁突然出現亮光會特別注意去看一下,這如果應

    用在廣告上,能增加人們去注意的機率,也能減少不必要的用

    電,使用感應式的觸發顯示,這樣比以前一直開著的廣告螢幕

    能減小更多不必要的用電,也能達到節能減碳的效果。再來是

    利用太陽能板來發電,這樣可以節省很多電費成本,這是這個專題還

    尚未加上的一些功能和設備。

  • 8

    理論

    1.點矩陣 LED 顯示原理

    圖一 參考 CPLD 數位邏輯設計實務課本的掃描原理圖片

    (一)掃描輸出:由於點陣字幕需要多點輸出(8X8需64個;16X16

    需256),可採用掃描輸出方式(程式),解碼擴充接點(電路),以節

  • 9

    省輸出埠,如圖一所示

    (二)輸出方式:共陽型與共陰型(輸出準位正反相)

    (三)顯示圖案/字型編碼:單色字幕機,每個LED需要一

    個位元(BIT)的資料, 8X8字幕機,每列8個點,需要一個位

    元組資料, 共計八列需要8BYTE個資料

    (四)逐行掃描:將8個行接點(C1~C8)與8個列接點(R1~R8),規

    劃成8條資料線與8條掃描線。每次資料線送出1行編碼資料

    (1Bytes),使用掃描線,選擇其中一行輸出,經短暫時間,送

    出下一行編碼資料,8行輪流顯示

    2. 點矩陣 LED 動作

    先利用三用電表測試點矩陣LED是共陰型還是共陽型,之後

    再找出正確腳位,然後在接到硬體電路上,然後IC 74HC245

    再輸入 0、1的訊號就控制LED的亮暗,給1時,LED亮,給0

    則不亮,再利用VHDL程式控制掃描多個動作,利用視覺暫

    留現象讓LED的多個動作掃秒顯示看起來像是一連貫的連續

    動作。

    3.七段顯示器

    市面上常看到的七段顯示器 Seven Segmet Display 是由八個

  • 10

    LED 所組合而成(連同小數點Decimal Pointer dp ),而其每個

    LED 的名稱依其分怖位子依次為a、b、c、d、e、f、g 及dp,

    其對應關係即如下圖所示:

    圖二

    於上圖二中可以發現到,我們只要控制a、b、c、d、e、f、g 及

    LED 亮或者不亮即可顯示出0~9 等不同的字型,理論上8

    個LED 總共有16 隻接腳,為了節省元件的控制接腳,於元

    件的架構上我們採用了單邊公共的方式,如此一來七段顯示

    器的元件又可以分成共陽Common Anode 及共陰Common

    Cathode 兩種。

    4.脈波產生

    在設計 CPLD 邏輯電路時,常使用石英晶體震盪器產生所需的的

  • 11

    穩定基準派波。如圖三所示之脈波產生電路,使用平率為 32768HZ

    之石英晶體震盪器產生穩定基準脈波輸出,再以 VHDL 程式設

    計除頻器,產生所需週期的計時脈波,提供邏輯電路使用。

    圖三

    5. CPLD 的特點

    (一 )縮短產品開發的時效。

    (二 )其容量遠大於傳統 PLD,燒錄特性好,方便大量使用。

    (三 ) 使用 IC 數變少,印刷電路板 ( PCB ) 面積變小,成本降低;佈

    線變少、短,分佈電容、電感對系統的干擾減少很多,所以整體的可

    靠度增加。

    (四) 整個電路的密集度高,雜散電容少,因而電路可以在更高頻率的

    環境下工作,使工作速率提高。

  • 12

    (五 )以使用邏輯描述語言 ( VHDL、AHDL、Verilog HDL 等語言 )、

    與電路圖等自動化工具完成設計、模擬;且可重覆燒錄,所以十分方

    便。

    (六 )CPLD 適合用來實現各種運算和組合邏輯 (combinational

    logic),觸發器有限而乘積項 (product term)較多的結構。

    6.硬體架構

  • 13

    圖四 (點矩陣的電路圖)

    Q1~Q8 是 CS9013 電晶體

    C1~C8 是接到點矩陣 LED 的 COL

    第 11 接腳到第 18 接腳是接到點矩陣 LED 的 ROW

  • 14

    COL(0)~COL(7)和 ROW(0)~ ROW(7)是接到 CPLD 的輸出入接

    *在附錄可以查詢 74HC245 的接腳邏輯閘圖

    上圖的 IC74LS245 已經換成 IC74HC245

    圖五(CPLD 電路板模組)

    U2 CPLD EPM3064ALC44-10

    CON1 是 Printer-port 連接器的接頭

    U1 IC 74HC244 X1

  • 15

    石英振盪器

    LED1 LED

    R1~R4 電阻器 100Ω 1/4W

    R5 電阻器 1kΩ 1/4W

    R6~R8 電阻器 1kΩ 1/4W

    R9 電阻器 180Ω 1/4W

    C1 電解電容器 10μF/25V

    C2~C6 陶瓷電容器 0.1μF/50V

    CON1 連接器

  • 16

    圖六(最後的實體圖)

    7.軟體應用(Quartus II)

    Quartus II系統CPLD撰寫VHDL程式來驅動電路,Quartus II系

  • 17

    統支援多種HDL格式轉換成邏輯電路,且支援多種板子進行

    download動作,由HDL和工具可讓電路設計變得很方便。

    Altera的QuartusII設計軟體提供一個非常容易適應特定設計所

    需要的完整的多平臺設計環境。它是一個可程化晶片系統設

    計的綜合性環境。QuartusII軟體包括FPGA和CPLD設計所有階

    段的解決方案。使用QuartusII軟體可以完成設計流程的所有

    階段,是一種完整且容易使用的獨立解決。QuartusII的設計

    流程:設計輸入→合成→佈局佈線→時序分析→模擬→元件

    編成與佈線。以下步驟描述QuartusII基本設計流程,但並非

    每個步驟均為必要步驟,使用者可依自行需要省略某項步驟

    或稍微變動步驟程序:

    1.使用視窗選單 File →New Project Wizard 建立新專案並指定

    目標元件或元件系列。

    2.使用 Text Editor 建立 VerilogHDL、VHDL 或 Altera 硬體描述

    語言(AHDL)設計。可以使用 Block Editor 建立包含代表其他

    設計檔案符號的方塊圖,或建立示意圖。

    3.使用視窗選單 Assignments →Assignment Editor、Settings 對

    話框、FloorplanEditor 和/或 LogicLock 功能指定初始設計限制。

    4.使用 Analysis & Synthesis 合成設計。

    5.使用模擬器對設計執行功能模擬。

    6.使用 Fitter 對設計執行配置和路線。

  • 18

    7.使用 Timing Analyzer 對設計進行時序分析。

    8.使用模擬器對設計進行時序模擬

    9.使用實體合成(physical synthesis)、時序閉合平面佈置圖

    (Timing Closure floorpla)、LogicLock 功能、設定(Settings)對話

    框和 Assignment Editor 進行時序改進。

    10.使用 Assembler 為設計建立編程檔案(ProgramingFile)。

    11.使用編程檔案、Programmer 畫面和 Altera 硬體(例如

    ByteblasterII)對元件進行編程(Program);或將編程檔案轉換為

    其他檔案格式以供嵌入式處理器等其他系統使用。

  • 19

    8.流程圖

    圖七

    這是製作小綠人和小紅人過程,硬體和軟體的流程圖如圖七

    所示

  • 20

    圖八

    如圖八,電路流程圖‧除頻電路→掃描電路→控制電路

    ‧字型產生器→多工器→最後產生小綠人的圖像在點矩陣

    LED 上

  • 21

    圖九

    圖九的電路圖內利用 Quartus II 軟體所畫的電路圖,CON9 電

    路圖包含了掃描電路、控制模組、二位元 BCD 計數器、解碼

    電路、七段顯示器輸出腳,p1 電路圖包含了除頻電路、掃描

    電路、控制電路、字型產生器、多工器、點矩陣 LED 入出腳

    ROW 和 COW

  • 22

    9.使用元件

    CPLD PCB 板 X1 IC 74HC244 X1

    CPLD EPM3064ALC44-10 X1 石英震盪器 4MHZ X1

    LED 綠色 X1 100 歐姆 X4

    1K 歐姆 X4 180 歐姆 X1

    電解電容 10uF X1 陶瓷電容 0.1uf X5

    Printerport 連接器的接頭 X1

    點矩陣 LED(共陽) X1 點矩陣 LED(共陰) X1

    IC74HC245 X2 電晶體 CS9013 X16

    電阻 100 Ω X16 電阻 1KΩ X16

    七段顯示器(共陽) X1

    電阻 220X8 PORT 線 X5

    洞洞板 X2

    電源供應器 示波器

    訊號產生器 電腦

    QuartusII 軟體

  • 23

    10.完成作品實體圖

    圖十 這是共陰極的點矩陣 LED 小紅人成品

    右上角那個是 7 段顯示器到數計時由 9~0

  • 24

    圖十一 這是共陽極的點矩陣 LED 小綠人成品

  • 25

    致謝

    首先完成這個專題,要感謝歐金池老師和謝東和老師,在大

    三開始進入實驗室時,就一直指導我們到現在要畢業了,回

    想起剛進實驗室的時候還不知道要選定什麼專題,是兩位老

    師提供我們方向和資訊,選定專題確認之後,就著手下去研

    究了,一開始遇到了許多瓶頸,例如除頻器該怎麼製作或是

    Quartus II 這套軟體如何使用,都一無所知,最後是靠著每周

    老師 meeting 和私底下請教老師或是找尋資料解決的,老師

    每周 meeting 總是叮嚀我們進度,讓我們能在專題評分時有

    個作品呈現,最後完成了,專題也通過了,那一刻真的是謝

    謝老師的教導與辛苦,謝謝歐老師和謝老師的指導,感謝你

    們。

  • 26

    結論心得

    我們是第一次接觸到 CPLD 所以對它非常陌生,從以前到現在是完

    全沒有接觸過的東西,對它真的是一竅不通,雖然我們不是非

    常優等的學生,但我們有努力學習的精神,我們不斷的去找老

    師討論與提問,老師也很有耐心的讓我們提問及教導我們,也

    提 供 我 們 許 多 的 參 考 資 料 以 及 找 資 料 的 方 法 輔 助 我 們 解 決了

    許多的難題,真的要非常感謝老師的耐心教導,後來也有到圖

    書館找相關的書籍資料。而同學間也會互相討論問題,把遇到

    的問題拿出來討論,會的人就解決並教導不會的同學,或者是

    分工去找資料來把問題解決,大家都能夠互相學習並分工把問

    題解決,在學習的路途上也是非常寶貴的回憶與經驗。而我們

    這次的專題選擇 CPLD 來控制點矩陣 LED 替代以往所使用的

    8051 IC,而兩顆 IC 的差別是 CPLD 內部是由邏輯閘陣列所組成,

    並由設計者規劃成數位電路。雖然我們花了很多時間在學習 CPLD 的

    使用,在學習的過程中也遇到許多挫折,但我們也慢慢努力地去克

    服,也因此讓我們因為做這項專題而學習到新的東西,讓我們多了一

    項專長,也多了一項人與人之間的合作與克服困難的能力,這不只能

    應用在我們的課業上,在我們人生的道路上也是不可或缺的,在小綠

    人成功動作的那刻所有的努力及熬夜都值得了。

  • 27

    建議

    在做的過程中頻率一定要量測是否有除頻了,沒除頻的話,速率太快

    了,眼睛看到的是點矩陣顯示出的可能是全部都亮,或是全部都滅的

    狀況。

    在驅動 CPLD 的電壓為 3.3V,不能超過太多否則會導致電路版毀,過

    低會使電腦無法偵測到 CPLD 元件訊息,還有驅動點矩陣的硬體電路

    為 5V,超過的話會使 IC74HC245 燒毀,就要更換新的了,要確定 IC

    型號 74LS245 好像不能,要用 74HC245。

    在使用 Quartus II 軟體燒錄時,一定要注意設好腳位,再燒錄,不然

    設錯的話,燒錄進去是不會動作的,VCC 和接地腳要看清楚。

    誠心建議大一大二就開始著手做專題了,不要等到大三才開始就有點

    趕,大一大二做專題,有長時間的研究計畫和找資料修改,還可以拿

    去比賽,得名了還可以免評,就輕鬆了,提供這個意見

  • 28

    附錄

    圖十二 CPLD 3064ALC44 腳位圖

  • 29

    圖十三 74HC245 腳位圖

    DIR 和 VCC 接為 5V,OE 和 GND 接為接地,A0~A7

    和 B0~B7 為輸出入腳

  • 30

    圖十四 石英震盪器接腳圖

    圖十五 CPLD 模組內石英振盪器的接腳

  • 31

    圖十六 CPLD 模組內 IC74HC244 電路設計

  • 32

    圖十七 點矩陣 LED 的構造

    圖十八 點矩陣 LED 接腳配置圖

  • 33

    參考文獻 http://residence.educities.edu.tw/oldfriend/Quartus/CPLD_FPGA.htm

    http://www.ee.ncut.edu.tw/project/ResultFile/9884.pdf

    http://itec.ltu.edu.tw/itecweb/project/96-5.pdf

    http://zh.wikipedia.org/zh-tw/CPLD

    http://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch12.pdf

    http://web1.labor.gov.tw/management/sitemap_upload_file/iiw/exambank/exambank1_97/1

    17002.pdf

    http://web1.labor.gov.tw/management/sitemap_upload_file/iiw/exambank/exambank1_97/1

    17002.pdf

    http://www.shs.edu.tw/works/essay/2011/11/2011111511471820.pdf

    http://datasheetz.com/data/Integrated%20Circuits%20%28ICs%29/CPLDs%20%28Comple

    x%20Programmable%20Logic%20Devices%29/EPM3064ALC44-4N-datasheetz.html

    參考書籍 碁峰 CPLD 數位邏輯設計實務

    http://residence.educities.edu.tw/oldfriend/Quartus/CPLD_FPGA.htmhttp://www.ee.ncut.edu.tw/project/ResultFile/9884.pdfhttp://itec.ltu.edu.tw/itecweb/project/96-5.pdfhttp://zh.wikipedia.org/zh-tw/CPLDhttp://dns2.asia.edu.tw/~rikki/mcs100/mcs-ch12.pdfhttp://web1.labor.gov.tw/management/sitemap_upload_file/iiw/exambank/exambank1_97/117002.pdfhttp://web1.labor.gov.tw/management/sitemap_upload_file/iiw/exambank/exambank1_97/117002.pdfhttp://web1.labor.gov.tw/management/sitemap_upload_file/iiw/exambank/exambank1_97/117002.pdfhttp://web1.labor.gov.tw/management/sitemap_upload_file/iiw/exambank/exambank1_97/117002.pdfhttp://www.shs.edu.tw/works/essay/2011/11/2011111511471820.pdfhttp://datasheetz.com/data/Integrated%20Circuits%20%28ICs%29/CPLDs%20%28Complex%20Programmable%20Logic%20Devices%29/EPM3064ALC44-4N-datasheetz.htmlhttp://datasheetz.com/data/Integrated%20Circuits%20%28ICs%29/CPLDs%20%28Complex%20Programmable%20Logic%20Devices%29/EPM3064ALC44-4N-datasheetz.html