基於Zynq的移動視頻監控系統的電機控制設計

2021-01-08 電子發燒友
基於Zynq的移動視頻監控系統的電機控制設計

陳榮濤,葛 芬 發表於 2017-11-17 11:23:01

摘 要: 針對傳統固定監控架設成本高、監控有死角且需要布置的視頻採集端個數太多的情況,提出一種基於ARM和FPGA相結合架構的移動視頻監控系統及其軟硬體實現方法,在減少視頻採集端節點的前提下,能夠全方位實時捕捉用戶所需的信息。該系統由電機控制模塊、視頻採集模塊和無線網絡控制模塊構成,實現了無線視頻監控系統;基於Linux作業系統、Web伺服器和視頻編碼器,實現了用戶可以通過Internet遠程查看目標現場的狀況。

 

中國視頻監控市場快速發展,數字監控逐步成為主流,網絡化、個人化和智能化將是中國視頻監控市場重要的發展趨勢。但當前基於流媒體傳輸的技術對網絡條件要求較高,不能大面積推廣,固定監控成本太高。如何將視頻監控與Interne相結合,使監控人員可以隨時隨地實施監控,是現代監控技術急需解決的問題。另一方面,目前視頻監控系統採用的微控制器多是ARM9、ARM11等系列微控制器,ARM微控制器硬體外設出廠時已經固定,不利於用戶進行硬體擴展和升級,而ARM和FPGA相結合的多晶片解決方案又會導致系統成本太高,同時還會造成系統資源的浪費,功耗太大。針對以上不足,本文提出了一種新的解決方案,採用Zynq系列處理器,晶片採用的是高性能Cortex-A9雙核和FPGA相結合,ARM部分可以解決高清視頻的處理問題,可編程邏輯FPGA部分可以升級和擴展硬體。

1 移動視頻監控系統架構

本設計的主控板為Digilent公司的ZedBoard開發板,主晶片Zynq7020結合高性能雙核ARM Cortex-A9 MPCore處理系統和可編程邏輯於一體[1]。視頻採集端位於移動小車之上,從而達到移動採集視頻的目的。系統的設計主要包括ARM控制部分的設計和FPGA邏輯部分的設計。ARM部分主要用來運行作業系統和系統上的應用軟體,如Web伺服器Boa,視頻編碼器mjpg-streamer;FPGA部分主要用來擴展硬體資源,進行小車電機驅動部分PWM IP核的設計。系統總體結構框圖如圖1所示。各模塊功能為:攝像頭負責視頻圖像採集,Zynq主控模塊負責ARM作業系統部分和FPGA邏輯資源部分,電機控制模塊負責智能小車的運動,Boa Webserver負責網絡的交互,無線路由器負責無線網絡數據的收發。

系統上電之後,首先自動執行晶片內部固化的晶片初始化程序,然後執行第一階段的啟動加載器FSBL,使用比特流文件(PWM IP核設計生成的bit文件)對FPGA部分進行配置,待FPGA配置完成後,開始執行U-boot引導程序,啟動Linux作業系統[2]。系統啟動完成後,智能小車通過無線路由器產生無線信號,用戶在另一端就可以通過網絡來連接智能小車終端,實施視頻監控。用戶和系統的交互實現如圖2所示。

本文主要介紹電機控制部分的設計,具體包括電機控制部分硬體電路的設計,FPGA部分PWM IP核的設計,Linux作業系統PWM驅動程序的設計。

2 電機控制部分的設計

2.1 電機控制部分硬體電路的設計

該模塊主要由L298P雙H橋直流電機驅動晶片實現。由於一個L298P晶片可以驅動兩個直流電機,小車有4個車輪,因此需要兩塊L298P晶片[3]。同時,為了減少使用的FPGA I/O引腳數量,在原理圖設計中採用了四二輸入或非門晶片SN74HC02D,這樣用兩個I/O引腳就可以控制L298P的4個輸入端。DIR1、DIR2、PWM1、PWM2通過Zedboard的PMOD接口與FPGA相連。原理圖如圖3所示,圖中IN1、IN2、IN3、IN4為輸入信號,ENA、ENB為使能信號。ENA控制IN1、IN2的輸入使能,ENB控制IN3、IN4的輸入使能。當ENA為1,DIR1為1時(也就是IN1為0,IN2為1時),P1接口上的電動機正轉;當ENA為1,DIR1為0時(也就是IN1為1,IN2為0時),P1接口上的電動機反轉;當ENA為0時,P1接口上的電動機停止。與P2口連接的電動機原理同上。

2.2 FPGA部分PWM IP核的設計

Xilinx嵌入式系統部分的設計由其公司推出的EDK(Embedded Development Kit)開發套件實現,EDK具有完成嵌入式系統設計的一整套工具,即:硬體設計工具XPS(Xilinx Platform Studio)和軟體設計工具SDK(Xilinx Software Development Kit),硬體設計步驟如下:(1)設置新工程路徑;
(2)自定義IP配置外設;
(3)建立UCF文件;
(4)bit流的生成[4]。自定義IP的部分主要實現電機的正轉,反轉和停止控制。關鍵VerilogHDL代碼如下:
case(state)

//電機停止

′NOP:{pwm_left,pwm_right}<={7′d0,7′d0};

′GOING://電機正向旋轉

begin

if(dis_value>31)

{pwm_left,pwm_right,dir_lself,dir_rself}

<={7′d100,7′d100,1′d0,1′d0};

else

{pwm_left,pwm_right,dir_lself,dir_rself}<=

{{dis_value[4:0],2′b0},{dis_value[4:0],2′b0},1′d1,1′d1};

end

′RETURN://電機反向旋轉

begin

if(dir_value==3′b010)

{pwm_left,pwm_right,dir_lself,dir_rself}<={7′d80,7′d80,1′d1,1′d0};

else

{pwm_left,pwm_right,dir_lself,dir_rself}<={7′d80,7′d80,1′b0,1′b1};

end

endcase

在本設計中,對電機的控制,傳輸的數據量較小,只需要添加一個低速的AXI4-Lite總線設備PWM模塊來控制PMOD接口就可以實現硬體設備之間通信,其中AXI4-Lite的全局時ACLK設置為100 MHz,PWM模塊分配的起始物理地址為0x6CA00000,空間大小為64 KB,PWM配置信息如圖4所示。

2.3 Linux下電機驅動部分的設計

由於遠端傳輸是在Linux系統下TCP/IP協議實現的,因此,編寫Linux下的IP驅動,應用程式就可以通過Linux的標準接口訪問FPGA的PMOD接口設備。本設計編寫的是字符型設備驅動程序,包含設備加載、設備卸載以及文件操作函數。PWM模塊加載時系統調用module_init(pwm_init)宏實現模塊的初始化操作,在本系統中pwm_init()函數主要完成以下工作:(1)內核註冊字符型設備驅動;(2)創建PWM設備類;(3)利用PWM設備類創建設備;(4)將PWM模塊物理地址映射到虛擬地址上[5]。部分關鍵代碼如下所示:
//XPS分配的物理地址

#define PWM_MOUDLE_PHY_ADDR 0x6CA00000

//註冊驅動

pwm_driver_major=register_chrdev(0,DEVICE_NAME,&pwm_driver_fops);

pwm_driver_class=class_create(THIS_MODULE,"

pwm_driver");//創建設備類

pwm_driver_device=device_create(pwm_driver_class,NULL,MKDEV(pwm_driver_major,0),NULL,"pwm_device");

//利用設備類創建設備

//將PWM IP物理地址映射為虛擬地址

pwm_fre_addr=(unsignedlong)ioremap(PWM_MOUDLE_ PHY_ADDR,sizeof(u32));

初始化工作結束,但是僅有初始化函數,設備仍然無法工作,還需要有實現頻率和佔空比的調節機制。控制PWM的頻率函數如下所示:

static ssize_t sys_pwm_frequency_set(struct device*dev, struct device_attribute*attr,const char*buf,size_t count)

{

long value=0;

int i;

frequency=0;

//修改頻率之前,關閉PWM模塊

outl(value,pwm_fre_addr);

//將寫入pwm_frequency中的字符串轉化為整數

for(i=0;i100000000)value=100000000;

value=100000000/frequency;

//將計數值寫入到PWM模塊的pwm_fre_addr寄存器中

outl(value,pwm_fre_addr);

return count;

}

控制PWM佔空比的函數和控制PWM頻率的函數一樣。

3 實驗結果及測試

系統的主控制板為Zedboard開發板,上電啟動後,無線路由器會發布一個SSID為Tp_Link_5C90的無線網絡,可以通過任何可以上網的設備連接這個網絡。在瀏覽器中輸入網址:192.168.1.100,就會登錄到移動視頻監控的網頁上,通過界面的按鈕控制視頻終端的運行。

本文設計採用Xilinx All Programmable晶片Zynq作為主控CPU,FPGA部分可以實現邏輯擴展和功能補充。例如:自定義通信協議、IP核,同時還可以利用Xilinx的部分可重配置技術升級硬體系統,易於後期擴展和硬體升級;ARM部分採用的是性能較高的Cortex-A9雙核,使得對高清晰視頻的處理較為流暢,而且系統整體功能也比較穩定。相比於傳統的模擬監控,數字視頻處理技術提高了圖像的質量和監控效率。

設計中採用軟硬體協同設計的方法,即:在整個系統及定義的基礎上,同時對軟硬體進行設計和協調,其中包括軟硬體的劃分(哪些功能使用軟體完成,哪些功能使用硬體完成)、軟硬體系統的開發與聯合調試,降低了開發風險,縮短了開發周期。

參考文獻

[1] Xilinx Inc. UG585, Zynq-7000 All Programmable SoC Technical Reference Mannual[Z]. 2013.

[2] Xilinx Inc. UG873, Zynq-7000 All Programmable SoC: Concepts, Tools and Techniques[Z]. 2013:12-35,40-53.

[3] 王芳芳,張歡.基於Zynq平臺的動態智能家居系統的設計[J].軟體,2013,34(8):98-100.

[4] 胡典榮,郭春生.基於ZedBoard的SPI和乙太網傳輸設計[J].杭州電子科技大學學報,2013,33(5):126-129.

[5] 陸佳華,江舟,馬岷.嵌入式系統軟硬體協同設計指南:基於Xilinx Zynq[M].北京:機械工業出版社,2013.

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 基於Matlab的PMSM電機控制系統虛擬開發平臺設計
    文章以Mutlab為設計平臺,通過Simulink,Stateflow搭建完整的PMSM電機控制系統模型,並在此模型基礎上開發GUI人機接口系統,實現了電機控制設計開發全程算法的驗證和性能測試,且便於系統性能和參數改進以及後期的擴展。
  • 基於Davicn的嵌入式網絡智能視頻監控系統設計
    DVR時代);第3代是基於IP網絡的視頻監控系統。伴隨網絡技術數字視頻技術和圖像技術的飛速發展,視頻監控正向智能化的方向發展,即智能視頻監控。與非智能化得視頻監控相比,智能視覺監控能實現主動監控,採用智能算法對監控到的畫面進行智能分析,進而進行相應的動作。智能視頻監控有基於PC機的智能視頻監控系統和嵌入式的智能視頻監控系統。
  • 基於嵌入式Linux的無線視頻監控系統設計
    高性能、低功耗嵌入式CPU和高可靠性網絡作業系統的面世,使得可視電話、視頻會議、遠程視頻監控等運算數據量大的應用在嵌入式設備中實現成為可能。傳統的基於同軸電纜的視頻監控系統結構複雜、穩定性差、可靠性低且價格昂貴,因而出現了嵌入式網絡視頻伺服器等遠程Web視頻監控系統。
  • 基於RFID校園監控系統是如何來設計的
    基於RFID校園監控系統是如何來設計的 李家亮 發表於 2019-12-25 14:08:20 隨著高科技的蓬勃發展和智能化產品在人們生活應用上的推廣與普及,使得人們在自動識別、自動控制、智能行為分析等方面不斷提出新的需求和新的應用高度
  • 基於Modbus RTU通信協議的伺服電機聯動控制系統
    摘要:針對改進傳統的複雜伺服電機聯動控制系統的目的,提出一種新的設計方案,採用Modbus RTU通信協議,簡化了系統複雜度,降低了成本,並且通過自行設計接口轉換電路,提高了通用性;另外,該系統通過改進優化的軟體設計,能實現系統的連續運行,解決了定位數據運行模式只能定位不能連續運行的問題
  • 基於ARM Linux的3G無線車載視頻監控系統
    摘要:為了加強客運服務中心對長途車輛在客運過程的監管,提出了基於ARM Linux的3G無線車栽視頻監控系統。該系統基於ARM Linux嵌入式系統與ARM處理器,通過USB攝像頭採集車內視頻數據,由GPS定位模塊獲取車輛的位置數據,然後將採集的數據經過H.264壓縮成適合網絡傳輸的形式。最終通過3G無線發射模塊經過具有寬帶傳輸能力的3G移動通信網絡傳輸給監控服務中心,監控服務中心可以看到車內清晰流暢的視頻畫面以及車輛所在位置。
  • 基於PLC的控制系統實現立體停車庫的設計
    1、立體停車庫的結構與工作原理 立體車庫控制系統包括車輛存取車系統、車輛管理系統(車輛身份認證、停車收費等)以及監控保安系統等。自動存取車系統是立體車庫控制的核心,由PLC控制。包括卡號識別與載重箱移動兩個過程。
  • 基於單片機的應用於視頻監控的矩陣切換器設計
    根據視頻監控系統對矩陣切換器的基本要求,設計了基於單片機的32×8視頻矩陣切換器。文中詳細論述了其接口電路設計,最後給出了由此矩陣切換器組成的視頻監控系統實例。
  • 基於參數自整定模糊控制技術實現電機軟啟動控制系統的設計
    基於參數自整定模糊控制技術實現電機軟啟動控制系統的設計 蘇亮,廖力清,凌玉 發表於 2020-12-17 10:29:17 1 引言 三相異步電機應用廣泛
  • 基於FPGA技術的全方位移動機器人運動控制系統的方案設計
    0 引言  目前,全方位移動機器人由於具有出色的靈活性,已經成為RoboCup中型組足球機器人比賽中最理想的選擇。而機器人的運動控制一直以來都是直接影響機器人性能的主要因素,也是移動機器人研究的熱點之一。
  • 基於ST72141單片機實現電機的啟動和控制系統設計
    基於ST72141單片機實現電機的啟動和控制系統設計 萬誠 發表於 2020-04-19 18:01:00 引 言 1、 概 述 ST72141
  • 基於ATmega8的直流電機PWM調速控制系統設計與實現
    本文將介紹一款以ATmega8為基礎,採用數字PID算法的受限單極性可逆PWM系統實現的直流電機調速控制系統,克服了上述難點。如何才能使電路具有成本低、控制精度高、調試修改參數方便,且能方便和靈活地適用於大功率、可靠性高的直流電機控制系統中,是我們研究的目的。文獻[2]和文獻[3]中採用了先進算法,用LTM18200和L298作電機控制電路,具有控制精度高、穩定性好、響應速度快等優點,但其驅動能力較低、成本較高。
  • 基於Intranet架構的校園監控系統的方案設計
    打開APP 基於Intranet架構的校園監控系統的方案設計 中國安防行業網 發表於 2021-01-07 11:29:28 行業特點
  • 基於DSP的交流異步電機高精度調速系統設計
    摘要:針對交流異步電機的特性,設計了一套基於DSP的交流異步電機高精度調速系統。系統應用矢量控制技術作為系統的總體控制方案,以TI公司電機控制專用的高速數位訊號處理器(DSP)TMS320F2812為系統的核心處理器,三菱電機公司的PS21246智能功率模塊(IPM)為逆變器件,在此基礎上運用空間電壓矢量脈寬調製技術和模糊PI控制算法,構建了一個基於TMS320F2812 DSP的交流異步電機高精度控制平臺。
  • 基於ARM的嵌入式無線視頻採集系統設計
    基於ARM的嵌入式無線視頻採集系統設計 秩名 發表於 2012-05-17 11:44:35   國內外市場上主要推出的是數字控制的模擬視頻監控和數字視頻監控兩類產品[1]。
  • 基於物聯網的圖像監控系統
    本文提出了基於物聯網的圖像監控系統,給出監控系統的設計方案、系統模型和實現方法。圖像採集硬體以MT7620為控制器,通過安卓行動裝置接收圖像,可以及時、準確、高效地進行圖像監控。引言  物聯網技術的飛速發展使得生產生活中的各個領域都與之深度融合。從對環境參數的簡單感知到大數據融合分析,物聯網技術在推進各個行業的改革。
  • 基於XBee無線技術的智能家居監控系統硬體設計和軟體設計
    基於XBee無線技術的智能家居監控系統硬體設計和軟體設計 工程師周亮 發表於 2018-08-21 09:45:34 1 引言 智能家居系統控制方式主要是有線網絡和無線網絡兩種方式。
  • CANopen協議在伺服電機控制系統中的實現
    基於現場總線的網絡技術的研究是自動化領域發展的一個熱點,canopen協議是目前流行於歐洲的基於can總線應用層的標準協議,對工程設計者來說,研究現場總線的核心任務就是對控制節點進行開發,本文就是通過實現伺服電機控制模塊的canopen為協議,說明一個基於canopen協議的控制網絡的組態。
  • 基於OPenWrt的移動機器人設計
    基於OPenWrt的移動機器人設計 機器人咖啡館 發表於 2020-11-19 14:24:59 OpenWrt 可以被描述為一個嵌入式的 Linux
  • 基於虛擬儀器的開關磁阻電機監控系統設計方案
    基於虛擬儀器的開關磁阻電機監控系統設計方案 付龍飛 發表於 2013-10-10 11:30:50   0 引言   開關磁阻電機(SRM)的結構和工作原理比較簡單