所有機(jī)器人都需要傳感器,計(jì)算和驅(qū)動(dòng)。
現(xiàn)成的x86 PC為您提供了一個(gè)熟悉的Linux環(huán)境來進(jìn)行開發(fā)和部署。 然而,PC存在嚴(yán)重問題,現(xiàn)成的主板不能提供與外界的低延遲和噪聲容忍連接。 USB似乎就是解決方法,但是一旦總線忙碌,如果你通過USB連接到電機(jī)控制器,延遲會(huì)讓你感到困惑。
在機(jī)箱內(nèi)隱藏著一個(gè)解決方案PCI Express。 雖然你很難找到PCI-e電機(jī)控制器或激光雷達(dá),但速度快,延遲低。 這就是ROPS的用武之地,可以作為PCI-e與CAN和RS485等總線之間的橋梁,您可以在電機(jī)控制器和傳感器上找到它們。
由于幾乎所有移動(dòng)機(jī)器人都需要IMU和GPS,有了ROPS這些都不是問題。
我們將在CSG325封裝中使用Xilinx Artix-7 XC7A35T作為ROPS的核心。 35T是中檔Artix部分,CSG325封裝將所有重要的GTP收發(fā)器綁定,以便我們可以使用PCI-e連接到主機(jī)。
我們計(jì)劃使用的傳感器是ST LSM9DS1 IMU,ST LPS25HW氣壓計(jì)和uBlox NEO-M8T GPS。
將有后面板IO用于連接第三方硬件,如電機(jī)控制器和其他傳感器,但我們還沒有確定任何細(xì)節(jié)。 目前只有很少的FPGA用于IO,因此這里有很多靈活性。 在主機(jī)外殼內(nèi)的夾層或柔性電纜連接器上也可能有額外的IO。
Verilog仿真工具
當(dāng)你處理任何類型的代碼時(shí),收緊write-compile-test循環(huán)總是有幫助的,特別是當(dāng)你第一次學(xué)習(xí)時(shí)。 對(duì)于SPI模塊,最重要的是SPI輸出的時(shí)序。 為此,我們需要模擬verilog并檢查輸出。 以下是我過去常用的工具。
編輯器
我使用neovim,但它并不重要。 我強(qiáng)烈建議使用語法高亮,強(qiáng)大的查找和替換以及跨平臺(tái)功能,以便您可以隨時(shí)隨地使用它。
Bash Glue
這就是魔術(shù)發(fā)生的地方,這個(gè)腳本以您當(dāng)前正在處理的文件的形式接受一個(gè)參數(shù),并等待它被保存。 保存后,腳本會(huì)編譯該文件,對(duì)其進(jìn)行模擬,并更新GTKWave的輸出。 我在這里使用verilog,但你可以在inotifywait之后用你正在處理的項(xiàng)目中有用的東西替換它們。 這可能是編譯器,linter等。我將它的輸出保存在我工作區(qū)的左上方窗格中,這樣我就可以檢查出現(xiàn)的任何錯(cuò)誤。
inotifywait
這確實(shí)是腳本的關(guān)鍵。 當(dāng)作為第一個(gè)參數(shù)提供給腳本的文件被關(guān)閉時(shí),如果它被打開為可寫,則inotifywait退出。 這樣,如果你捕獲文件,或差異,它將不會(huì)做任何事情。 它不會(huì)查看文件內(nèi)部以查看是否已進(jìn)行更改,它只知道文件已關(guān)閉。
iVerilog
Icarus Verilog是一個(gè)verilog綜合和模擬工具。 iVerilog將源編譯為類似中間程序集的源,然后由iVerilog工具集的另一部分vvp執(zhí)行。 這樣做會(huì)輸出一個(gè).lxt文件,該文件存儲(chǔ)verilog中各種連線和寄存器的波形。
在腳本中,iverilog的-o選項(xiàng)命名輸出文件,這里我們只使用main。 然后我們?cè)趍ain上調(diào)用vvp,并告訴vvp將波形輸出到.lxt文件。
GTKWave
模擬verilog時(shí),可以使用類似printf的語句,也可以轉(zhuǎn)儲(chǔ)每行的狀態(tài)并注冊(cè)到文件中。 查看寄存器轉(zhuǎn)儲(chǔ)。 我正在使用GTKWave。 在我看來,它是一個(gè)完美的軟件。 當(dāng)我想檢查波形時(shí),它會(huì)完成我需要的一切,而不是其他任何東西。
在腳本中,我們調(diào)用gconftool-2來更新波形。 我不知道他們?yōu)槭裁催x擇配置工具來做這件事,但它很有效。
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。 )