唐敏(大連職業技術學院電氣電子工程學院, 遼寧大連,116037)
基于FPGA的智能交通控制器的建模與仿真
唐敏
(大連職業技術學院電氣電子工程學院, 遼寧大連,116037)
介紹了一種采用FPGA設計方法進行建模與仿真的智能交通控制器。采用模塊化的設計方法,首先,為了滿足智能交通控制器的功能需求,分析了各個子模塊的建模設計思想,仿真驗證子模塊的設計正確性,再將各子模塊整合成頂層智能交通控制器,通過Modelsim軟件仿真測試驗證智能交通控制器的控制正確性。該智能交通控制器使用EP3C10E144C8芯片實現。測試表明,該智能交通控制器能實現交通燈信號燈的控制和剩余時間的倒計時顯示。
智能交通控制器;FPGA;建模;仿真
隨著城市軌道交通的發展,智能交通控制器也呈現多功能多樣性的特點。
FPGA的設計方法[1],即在可編程邏輯器件內部進行硬件電路和功能的EDA設計,給智能電子產品的設計提供了新的思路。本文采用FPGA設計方法完成智能交通控制器的建模與仿真,芯片是Altera公司的EP3C10E144C8,設計一個具有3種交通信號燈和倒計時顯示的十字路口智能交通控制器設計:
(1)十字路口的A、B兩個方向各設一組信號燈:綠燈(G)、黃燈(Y)和紅燈(R)。
(2)A、B兩個方向各設一組倒計時顯示器,A方向的綠燈、黃燈和紅燈顯示時間分別為40s、5s和50s;B方向的綠燈、黃燈和紅燈顯示時間分別為30s、5s和60s。
(3)具有總體清零功能。計時器由初始狀態開始計數,對應狀態的LED指示燈點亮。
交通信號燈控制器是典型的數字系統,因為每個方向相對的信號燈狀態及倒計時顯示完全一致,根據設計要求,交通信號等控制器具有如下功能:

表1 交通信號燈控制器功能表
交通信號燈控制器采用Moore狀態機[2]設計,在輸入變化時,只有時鐘到來時才導致輸出的變化,其輸出僅為當前狀態的函數,與輸入信號無關。其結構圖如圖1所示。

圖1 Moore狀態機結構圖
交通信號燈控制器的狀態轉換表如表2所示。

表2 交通燈信號燈控制器的狀態轉換表
從狀態轉換表可以看出,每個方向的3個信號燈依次順序點亮,并不斷循環。
顯示時間為:AG+AY = BR =50s,BG+BY = AR =40s。
當系統總復位時,信號燈全部熄滅。
為了驗證智能交通控制器的正確性,本文的設計思路是:首先,建立所需的時鐘分頻功能子模塊、狀態轉換功能子模塊和顯示控制功能子模塊,建模仿真,驗證實現各子模塊的功能;然后,再整合建立智能交通控制器,建模仿真驗證整體功能;最后,查看交通狀態轉換情況和倒計時時間,從而驗證設計的正確性。
1.1 智能交通控制器的總體設計
根據交通信號燈控制器功能分析,系統結構圖如圖2所示。

圖2 交通信號燈控制器的系統結構框圖
根據圖2可以看出,串口通信接口驅動包括3個模塊。
(1)時鐘分頻模塊:用于產生1Hz秒計數時鐘信號和1KHz的掃描時鐘信號。
(2)狀態轉換模塊:用于控制交通信號燈4個狀態的變換,包括信號燈和剩余時間的變換。
(3)顯示控制模塊:用于控制交通信號燈的亮滅,顯示剩余時間的個位和十位。
智能交通控制器的I/O端口說明如表3所示。

表3 智能交通控制器的I/O端口說明
1.2 時鐘分頻子模塊的建模
時鐘分頻子模塊的主要功能是:產生1Hz秒計數時鐘信號和1KHz的掃描時鐘信號。具體模塊符號見圖3所示。

圖3 時鐘分頻子模塊符號
時間分頻子模塊的I/O說明如表4所示。

表4 時間分頻子模塊的I/O端口說明
時鐘分頻子模塊建模思想[3]:將系統時鐘(20MHz)轉換成秒計數時鐘(1Hz),就是降低系統時鐘,以滿足智能交通控制器中倒計時秒計數器的需要。這種轉換就是分頻器。分頻倍數n的計算公式為:

根據已知,秒計數時鐘所需要的分頻倍數為20×106,對輸入時鐘每計數n/2(10×106)個時鐘周期,輸出時鐘就進行一次翻轉,從而產生秒計數時鐘。
掃描時鐘的產生原理同秒計數時鐘,掃描時鐘所需要的分頻倍數為20×103,對輸入時鐘每計數n/2(10×103)個時鐘周期,輸出時鐘就進行一次翻轉,從而產生掃描時鐘。
根據建模設計思想設計時鐘分頻子模塊,仿真結果具體如圖4所示。

圖4 時鐘分頻子模塊的仿真結果
在圖4所示的時鐘分頻子模塊仿真結果中,clk為系統時鐘輸入端,設置成1ns。clk1hz為1Hz時鐘信號輸出端,設置為智能交通控制器倒計時時鐘脈沖輸出。clk1khz為分1KHz時鐘信號輸出端,作為數碼管動態顯示掃描時鐘脈沖信號輸出。
1.3 狀態轉換子模塊的建模
狀態轉換子模塊的功能是:完成A、B兩個方向的4個狀態的轉換。模塊符號具體見圖5所示。

圖5 狀態轉換子模塊符號
狀態轉換子模塊的I/O說明如表5所示。

表5 狀態轉換子模塊的I/O端口說明
其中,stime[7:4]為剩余時間的十位BCD碼,stime[3:0]為剩余時間的個位BCD碼;leds[5:3]為第一組信號燈(RYG)控制位,leds[2:0]為第二組信號燈(RYG)控制位。
智能交通控制器采用Moore狀態機進行狀態轉換。Moore狀態機的輸出只和當前狀態有關。在時鐘脈沖的有限個門延時后,輸出達到穩定。輸出會在一個完整的時鐘周期內保持穩定值,即使在該時鐘內輸入信號已發生變化,輸出信號也不會發生變化。輸入對輸出的影響要到下一個時鐘周期才能反映出來。把輸入和輸出分開是Moore狀態機的重要特征。
設計狀態轉換模塊時,分2個部分。
(1)狀態切換:完成幾個狀態之間的切換。
(2)狀態設置:設置每個狀態下輸出的變化。
狀態轉換子模塊的仿真結果具體如圖6所示。

圖6 狀態轉換子模塊的仿真結果
在圖6所示的狀態轉換子模塊仿真結果中,當leds信號為001100B時,第一組信號燈為綠燈亮,第二組信號燈為紅燈亮,南北方向通行,東西方向禁止。Stime信號為剩余時間BCD碼,開始倒計時。
1.4 顯示控制子模塊的建模
顯示控制子模塊的功能是:控制AB方向的信號燈以及顯示剩余時間。
顯示控制子模塊符號具體如圖7所示。

圖7 顯示控制子模塊符號
顯示控制子模塊的I/O說明如表6所示。

表6 顯示控制子模塊的I/O端口說明
其中,ab_leds[5:0]為AB方向的信號燈(RGY)控制位,scan[1:0]為2個數碼管的掃描控制位,seg7[6:0]為7段數碼管的位段碼。stime剩余時間分為十位和個位,采用動態掃描的形式,送至2個數碼管顯示。
顯示控制子模塊的建模思想[4]:就是將BCD碼轉換為7段數碼管的位段顯示碼,以此來顯示十進制數字。例如數字1,對應的位段碼為06H,即為00000110B。
顯示控制子模塊的仿真結果具體如圖8所示。

圖8 顯示控制子模塊的仿真結果
在圖8所示的顯示控制子模塊仿真結果中,倒計時時鐘信號通過clk1hz引腳輸入,數碼管動態掃描時間通過clk1khz引腳輸入,交通信號燈(紅黃綠3個信號燈)根據leds引腳輸入變化,同時通過stime引腳輸入顯示對應的倒計時時間,seg7引腳輸出相應的數碼管位段碼,在scan引腳的控制下數碼管動態顯示倒計時的個位和十位。
將時鐘分頻子模塊、狀態轉換子模塊和顯示控制子模塊整合成智能交通控制器。頂層設計原理圖具體如圖9所示。

圖9 智能交通控制器的頂層設計原理圖
圖9 中將時鐘分頻子模塊產生的時鐘信號輸出連接到狀態轉換子模塊和顯示控制子模塊;將狀態轉換模塊的信號燈控制輸出和剩余時間輸出連接至顯示控制子模塊。

圖10 智能交通控制器聯合仿真
圖10 中可以看出,隨著狀態的轉換,交通燈發生變化,不同交通控制狀態下的剩余時間也隨之變化,并進行倒計時。完成智能交通控制器的設計,滿足智能交通控制器的要求。
智能交通控制器所使用的EP3C10E144C8的硬件資源具體如表7所示。

表7 智能交通控制器所使用的硬件資源
從表5中可以看出,使用EP3C10E144C8芯片中很少的硬件資源就可以實現智能交通控制器,借助Quartus設計軟件能很好的進行建模與仿真。
對建模設計完成的智能交通控制器進行控制正確性測試。
頂層設計實體的仿真也可以調用ModelSim仿真工具[5]進行仿真。測試步驟具體如下。
(1)編寫智能交通控制器的TestBench測試代碼。


(2)在ModelSim工具中查看到添加并編譯通過的源文件。

圖11 ModelSim中添加源文件
(3)啟動仿真,具體查看測試結果。

表8 智能交通控制器測試結果
從測試結果可以看出,結果均正確,控制正確。
(1)A方向綠燈亮,車輛通行,用時40s后黃燈亮,10s后紅燈亮,A向車輛停止,共計50s;此時B方向一直紅燈亮,禁止車輛通行。
(2)A方向紅燈亮,禁止車輛通行,B方向綠燈亮,車輛通行,用時30s后黃燈亮,10s后紅燈亮,B向車輛停止,共計40s。
該智能交通控制器采用FPGA的模塊化設計思想,先設計時鐘分頻、狀態轉換和顯示控制3個子模塊的模型,然后再將子模塊整合至頂層智能交通控制器。通過仿真,子模塊功能均正確,整合而成的智能交通控制器動作控制正確,說明智能交通控制器建模正確。
[1] Samir Palnitkar著,夏宇聞等譯, Verilog HDL數字設計與綜合[M].北京:電子工業出版社,2009.
[2] 孔昕等. 基于Verilog的有限狀態機設計與優化[J]. 微電子學與計算機,2010,2(27):180-183.
[3] 任青蓮,李東紅. 一種基于Verilog代碼的任意分數分頻器的設計[J]. 山西電子技術,2016,5:20-21.
[4] 邱鋒波,賀占莊. 基于FPGA的并行數碼管顯示控制設計[J].科學技術與工程,2009,12(9):7170-7172.
[5] 趙偉,齊向東. 基于VHDL的數字鎖相環設計及Modelsim仿真[J].機械工程與自動化,2013,4(2):57-59.
Modeling and Simulation of Intelligent Traffic Controller Based on FPGA
Tang Min
(Dalian Vocational & Technical College, Dalian Liaoning,116037)
A intelligent traffic controller based on FPGA technology to model and simulate was presented Using the modularization programming method, sub-modules of intelligent traffic controller was analyzed firstly to meet the functional requirements The simulating result shows that the function of sub-module was correct Secondly, all sub-modules was integrated in the top intelligent traffic controller.Using the ModelSim software, the operation correctness was proved by simulating result This driver was realized by EP3C10E144C8 The testing result shows that the functional requirements was realized by the intelligent traffic controller, including the control of traffic lights and thc display of countdown to the remaining time
intelligent traffic controller; FPGA; Model; Simulate
唐敏 (1976—),女,漢族,遼寧大連人,工程師,從事嵌入式軟件開發和EDA技術教學和科研工作。
大連職業技術學院校級課題項目 (課題編號:DZ2016B-04)。