新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 基于Zynq的FSAE賽車遙測平臺—一種實時遙測系統(tǒng)

        基于Zynq的FSAE賽車遙測平臺—一種實時遙測系統(tǒng)

        作者:陳鑫宇 譚洪仕 徐寬 時間:2017-02-17 來源:電子產(chǎn)品世界 收藏

        圖4   項目框圖  

        本文引用地址:http://www.104case.com/article/201702/344141.htm

        圖5    軟件流程圖
        A9 處理器和豐富的邏輯資源,有很好的可拓展性,非常適 合本項目的開發(fā)工作。

        具體實現(xiàn)
        車載數(shù)據(jù)發(fā)送端:
        行車數(shù)據(jù)傳輸?shù)膶崿F(xiàn):車隊使用的ECU型號為MoTeC M800,基于CAN2.0協(xié)議,采用廣播式發(fā)送,每次發(fā)送173 字節(jié)的數(shù)據(jù)包,傳輸速率為1Mbps。本項目自制一個基于 STM32的數(shù)據(jù)采集板完成ECU的數(shù)據(jù)采集、篩選和發(fā)送。 STM 3 2 自 帶 兩 個 C A N 控 制 器 , 以 中 斷 方 式 接 收 來 自 ECU 的 C A N 報 文 , 以 輪 詢 方 式 通 過 無 線 串 口 發(fā) 送 數(shù) 據(jù) 。 采 用 HVP230作為CAN物理層收發(fā)器。經(jīng)驗證,本方案可以高效 地采集并發(fā)送數(shù)據(jù),穩(wěn)定性非常高。
        圖像和語音的傳輸采用FPV 2.4G無線傳輸。
        手持平臺的接收端設計:
        雙核Cortex?-A9 處理器運行Ubuntu系統(tǒng),交叉編譯并安 裝OpenCV和Qt。在Qt下采用多線程編程方式開發(fā)上位機, 串口接收數(shù)據(jù)進程與數(shù)據(jù)顯示進程并行運行。主線程調(diào)用 customplot庫,將另一個線程接收的數(shù)據(jù)通過折線圖實時顯 示出來。這樣就完成了行車數(shù)據(jù)接收和顯示。其次是車手 視角圖像和語音的傳輸實現(xiàn),采用FPV - CT210 2.4G接收模 塊,通過2.4G無線傳輸。安裝USB視頻采集卡驅(qū)動,并重新 編譯內(nèi)核。
        項目開源鏈接:http://www.openhw.org/project-8
        一部分項目步驟:
        內(nèi)核編譯詳解:
        首先去github下載linux xilinx-v2015.1源碼 下載地址https://github.com/Xilinx/linux-xlnx/tree/xilinx-
        v2015.1 然后解壓cd linux-xlnx-xilinx-v2015.1/    進入文件夾
        make ARCH=arm xilinx_zynq_defconfig 添加usb攝像頭驅(qū)動make ARCH=arm menuconfig Device Drivers --->
        Multimedia support --->
        Media USB Adapters ---> 選擇built-in
        USB Video Class (UVC) 選擇built-in
        UVC input events device support (NEW) 選擇built-in make ARCH=arm LOADADDR=0x00008000 uImage 編譯完成后,將uImage拷貝到sd卡fat分區(qū)。
        U-boot制作:
        ? 首先去github下載uboot xilinx-v2015.1源碼
        ?  下載地址https://github.com/Xilinx/u-boot-xlnx/tree/
        xilinx-v2015.1
        ? 解壓到工作目錄
        ? cd u-boot-xlnx-xilinx-v2015.1/
        ? make ARCH=arm zynq_zybo_config
        ?   修 改 u b o o t 環(huán) 境 變 量 s d b o o t 因 為 我 們 使 用 的 不 是
        ramdisk文件系統(tǒng)
        ? vim include/configs/zynq-common.h
        ? 修改為:
        "sdboot=if mmcinfo; then " "run uenvboot; "
        "echo Copying Linux from SD to RAM... && "
        "load mmc 0 ${kernel_load_address} ${kernel_image} && " " load mmc 0 ${devicetree_load_address} ${devicetree_
        image} &&"
        " bootm ${ kernel_load_address} - ${dev icetree_load_
        address};" "fi

        主站蜘蛛池模板: 武汉市| 溧水县| 贵南县| 新郑市| 枞阳县| 伊通| 崇义县| 关岭| 四子王旗| 彝良县| 台湾省| 井陉县| 鄂托克旗| 中牟县| 秦安县| 大化| 思南县| 措美县| 衡阳市| 进贤县| 高青县| 灵寿县| 盐津县| 梅河口市| 潮安县| 额尔古纳市| 鄂州市| 石楼县| 丰都县| 乌拉特中旗| 阿尔山市| 定结县| 方正县| 文昌市| 乌鲁木齐县| 台江县| 陕西省| 张掖市| 宜川县| 外汇| 右玉县|