管理員
統計數據
原文網址 石小川 2019-12-15 18:02:53
繼上回介紹自製相容ARM9處理器核心後, 現在再推薦一款新的計算機架構, 而且是免費開源IP(矽智財)的CPU架構給有興趣的好友多一項參考設計, 這是目前國內外晶片廠最火紅的RISC-V(發音risk-five), 只要你願意可上RISC-V基金會官方網站下載相關開發工具及資源, 根據自已的需求設計32位元或64位元CPU(其實也有已經設計好的RISC-V核心提供下載), 然後以Verilog 燒寫在FPGA上即可完成自已的CPU架構, 值得一提的是雖然RISC-V它是免費的, 但是它的CPU效能相對於x86 及ARM來說毫不遜色, 2016年終於出現一個可以抗衡x86及ARM年代, 值得推薦! 另外 "手把手教你設計CPU-RISC-V處理器篇"這本書也很適合初學者入門, 對於有興趣設計AI或CPU晶片的好友可參考看看. 不過感傷的是這幾年很多科技技術書籍是簡體字, 國內寫書的人似乎逐漸凋零了, 這是國家競爭力的一項指標, 唉! 你懂我意思的^^" p.s. RISC-V(發音為「risk-five」)是基於已建立的精簡指令集(RISC)原則的一個開源指令集架構(ISA)。 與大多數指令集相比,RISC-V指令集可以自由地用於任何目的,允許任何人設計、製造和銷售RISC-V晶片和軟體, 請參考下列維基百科: https://zh.wikipedia.org/zh-tw/RISC-V
曾希哲 2019-12-15 18:47:33
真該買本好好讀一讀
林永仁 2019-12-16 08:28:13
哥借分享
原文網址 石小川 2019-12-15 18:00:41
想要自已設計屬於自已規格的CPU其實沒有想像中的難, 介紹一本書給有興趣創業或當IC設計工程師的好友參考一下 - 書名: 嵌入式系統設計 Verilog-ARM, 實作是以FPGA及Verilog語言設計相容於ARM9核心CPU, ARM是精簡指令(RISC)實作簡單, 可跑Linux, 對於有計算機結構基礎的人應該游刃有餘, 書中提到的管線(pipe line)結構是我比較不滿意的部分, 有些複雜, 由於真正的ARM9是採用五級管線取指令, 而書中是模擬3.5級管線, 進階的話可自行修改自已發明有效率的方法. 搞懂理論及實作可自已設計SoC(System on Chip, 系統單晶片), 將 DSP, USB及類神經網路晶片(NPU)或視覺辨識設計在系統裡面成為單晶片, 我的FPGA開發平台是採用Altera CYCLONE III EP3Cxxxx系列, 如圖所示. p.s. 用FPGA的好處是在開發初期可不需要找台積電就可生產少量IC, 省很多開發費用, 缺點是單價較貴! https://code.google.com/archive/p/risclite/
原文網址 石小川 2019-12-15 17:44:44
對於Linux工程師來說內嵌系統交叉編譯環境的建立較複雜, 手動編譯起來時常是一個噩夢, 其實只要資料完備不會很困難, 下面我把一些講義分享出來給有需要的好友參考一下, 期望可以少走一些冤枉路! 我PC的Linux作業系統版本是Fedora 20-i386, Embedded system 是ARM11板子的內嵌系統, 我在PC開發的程式是Qt5.4.1, opencv是3.1.0, PC開發環境下寫好的程式再移植到ARM11板子上, 可正常運作, 沒圖沒真相, 如圖程式是usb camera程式, 可顯示JPG照片及動態顯示攝影機視訊! 由於QT 及 OpenCV arm-linux交叉編譯比較冗長, 我再另闢專欄解說, 這之前我先列出交叉編譯需要用到的一些程式庫的編譯詳細步驟, 有不清楚的地方也可跟我討論一下! //------------------------------------------------------------------------------- Linux交叉編譯環境建立 講義 交叉編譯(Cross compiler)是在一種處理器架構平台上(如PC-x86架構,此稱PC平台)編譯連結成另一個處理器架構平台(如ARM架構,此稱Target平台)所能執行程式的工具軟體。 A. PC-x86平台環境建立步驟 (1)Install Fedora 20 Download Linux OS,版本為Fedora20-i386-DVD.iso,燒寫 至光碟片,然後安裝作業系統到PC。 先更新作業系統。 yum update -y (2)Install Fedora 20相關工具軟體 yum install –y filezilla putty cmake cmake-gui gcc gcc-c++ yum install –y automake libtool tslib (3)Install arm-linux-gcc (3-1)解壓縮arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz 執行Fedora 20>>終端機程式,輸入: tar xvzf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz –C /opt/,解壓縮將arm-linux-gcc-4.5.1安裝到/opt/FriendlyARM/toolschain/4.5.1。 p.s. 路徑一定要放在此(/opt/),不能更改,否則會錯誤。 (3-2)將arm-linux-gcc的路徑加到系統環境變數中 method 1. 修改檔案.bashrc(個人環境) 用vi 編輯 /root/.bashrc 最後一行加上: export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin 儲存後OS重新登錄User即可作用。 method 2. 修改檔案 /etc/profile(全域環境) 最後一行加上: export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin 儲存後須重新開機始可作用。 (3-3)在終端機輸入arm-linux-gcc –v,如果有gcc相關資訊顯示出來表示設定成功。 (4)交叉編譯相關程式庫 如果沒用到可選擇跳過不安裝,詳細交叉編譯方法請看附錄A。 (4-1)交叉編譯tslib 觸控面板驅動函式庫。 (4-2)交叉編譯ffmpeg 影片播放與轉檔函式庫。 (4-3)交叉編譯gtk 圖形介面開發套件。 (4-4)交叉編譯jpeg Jpeg功能函式庫。 (4-5)交叉編譯png Png功能函式庫。 (4-6)交叉編譯x264 X264編碼器函式庫。 (4-7)交叉編譯yasm 編譯ffmpeg時可指定用yasm指令編譯,提高編譯速度。 (4-8)交叉編譯zlib 資料壓縮函式庫。 (4-9)交叉編譯qt5.4.1 跨平台的c++應用程式開發工具。 (5)Install Qt Creator 到Qt官方網站: https://www.qt.io/download-open-source/#section-2 選擇下載Qt Online Installer for Linux 32-bit 線上安裝Qt Creator相關程式。安裝程式會自動安裝PC平台的Qt,至於Target平台的Qt必須手動交叉編譯來安裝。 (為求系統穩定,盡量以Qt 5.4.1為開發版本。) (6)Install Opecv 到Opencv官方網站: http://opencv.org/downloads.html 選擇下載Opencv-3.1.0.zip 附錄A A-1. 交叉編譯tslib 功能: 觸控面板驅動函式庫。 在終端機按照步驟輸入指令如下: (1)git clone https://github.com/kergoth/tslib //download tslib source code (2) cp /root/tslib /opt/ -r //copy /root/tslib to /opt (3)cd /opt/tslib //change dir to /tslib (4)./autogen.sh //執行安裝腳本 (5) ./configure CC=arm-linux-gcc CXX=CC=arm-linux-g++ --prefix=/opt/tslib-arm --host=arm-linux ac_cv_func_malloc_0_nonnull=yes //配置tslib (5) make //產生makefile (6) make install //編譯完成後函示庫自動安裝到 /opt/tslib-arm A-2. 交叉編譯zlib 功能: 提共資料壓縮之用的函式庫。 在終端機按照步驟輸入指令如下: (1) download and copy zlib-1.2.8 to /opt (2) cd /opt/ zlib-1.2.8 (3) CC=arm-linux-gcc ./configure --prefix=/opt/zlib-arm (4) make (5) make install A-3. 交叉編譯jpeg 功能: jpeg函式庫。 在終端機按照步驟輸入指令如下: (1) download and copy jpeg-9 to /opt (2) cd /opt/ jpeg-9 (3) CC=arm-linux-gcc ./configure --prefix=/opt/jpeg9-arm -- host=arm-linux (4) make (5) make install A-3. 交叉編譯png 功能: png函式庫。 在終端機按照步驟輸入指令如下: (1) download and copy libpng-1.6.23 to /opt (2) cd /opt/ libpng-1.6.23 (3) ./configure CC=arm-linux-gcc --prefix=/opt/png-arm -- host=arm-linux (4) make (5) make install A-4. 交叉編譯yasm 功能: yasm指令可提高編譯ffmpeg速度。 在終端機按照步驟輸入指令如下: (1)download and copy yasm-1.3.0 to /opt (2)cd /opt/ yasm-1.3.0 (3)./configure CC=arm-linux-gcc --prefix=/opt/yasm-arm --host=arm-linux (4)make (5)make install A-5. 交叉編譯x264 功能: x264編碼器函式庫。 在終端機按照步驟輸入指令如下: (1)download and copy x264-snapshot-20160220-2245-stable to /opt (2)cd /opt/x264-snapshot-20160220-2245-stable (3)./configure CC=arm-linux-gcc --enable-shared --host=arm-linux --disable-asm --prefix=/opt/x264-arm (4)make (5)make install A-6. 交叉編譯ffmpeg 功能: 影片播放與轉檔函式庫。 在終端機按照步驟輸入指令如下: (1) download and copy ffmpeg-3.1.1 to /opt (或直接下載: git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg) (2)cd /opt/ ffmpeg-3.1.1 (3)./configure --enable-cross-compile --cc=arm-linux-gcc --arch=arm --target-os=linux --enable-shared --enable-gpl --disable-stripping --enable-pthreads --enable-small --disable-parsers --disable-optimizations --disable-yasm --disable-armv6 --disable-static --disable-amd3dnow --prefix=/opt/ffmpeg-arm (4)make (5)make install
Jade Yang 2019-12-15 18:43:39
林永仁 2019-12-16 09:09:29
原文網址 石小川 2019-12-15 17:41:10
原文網址 李榮貴 2019-12-12 14:13:47
哈囉,你們好我是在賣Arduino 零件等,如果有需要什麼零件歡迎詢問,盡量幫你找到你要的東西,也歡迎你們進入我賣場看看,是否有你們需要的零件,謝謝
原文網址 石小川 2019-12-07 10:53:59
科學就是要互相交流,才能激盪出改變這個世界的思維!
詹俊英 2019-12-08 00:45:13
YES!
原文網址 石小川 2019-12-06 13:12:42
今天看到其他社團在討論陀螺儀磁性干擾的問題,本來已經入定在寫程式了,終究手癢還是撩下去談談雷射陀螺儀。現代太空梭、戰鬥機甚至飛彈都早已經用這種裝置在輔助飛行,我嘗試用淺顯易懂的方式解說這個用途廣泛的光電裝置。 雷射陀螺儀是一種光的干涉原理製成的裝置,如圖所示。 簡要解釋一下原理: 雷射陀螺儀在轉一個角度時, 相同雷射光沿著順時針、逆時針的光行程差會產生干涉條紋( 建設性干涉、破壞性干涉與波長有關), 由辨識到的干涉條紋影像用單晶片電腦(MCU) 或數位信號處理器(DSP)套用公式就可計算出方位角(azimuth)、仰角(elevation)等有用的飛行姿態。 公式推導可參考一下。由干涉條紋的位移可反推目前飛機角速度和速度而且極其精準,邁克生干涉儀(Michelson interferometer)也是應用相同的原理製成。目前雷射頭和Sensor都很便宜了, 雷射陀螺儀完全沒有動的元件,對於光電有興趣的朋友也可自已研究一下,至於干涉條紋的辨識也是機器視覺的一部分,技術好壞牽涉到精準度。 符號說明: c : 光速 λ: 光的波長 v : 陀螺儀移動線速度 ω: 陀螺儀移動角速度 Δt: 光繞著ABCD所花費的總時間 ΔN: 干涉條紋位移 公式推導: @光沿著AB路徑行走所花費的時間是: tAB = √2R /(v/√2 + c) ------------(1) 因為v = Rω, 所以上式整理一下 tAB = 2R/(ωR+√2c) ------------(2) @光沿著AD路徑行走所花費的時間是: tAD = 2R/(√2c – ωR) ------------(3) @光沿著ABCD順時針、逆時針所花費的時間分別是: t逆時針 = 8R/(√2c -ωR) ------------(4) t順時針 = 8R/(√2c+ωR) ------------(5) @因此光繞著ABCD所花費的總時間Δt Δt = t順時針 – t逆時針 ------------(6) @使用二項式級數展開可得: Δt = 8R²ω/c² ------------(7) @因為正方形面積a = 2R², 所以可表示為: Δt = 4aω/c² ------------(8) @假設雷射光的週期 τ = λ/c, 則干涉條紋位移ΔN ΔN = Δt/τ ------------(9) ΔN = 4aω/c λ ------------(10)
原文網址 石小川 2019-12-05 07:55:30
接專案之餘我們也順便賣運動卡, 我們賣的是商品+知識。 現在介紹一款CNC六軸運動控制卡給喜歡自已寫控制程式的人參考。 IMC3062E 運動卡簡介: 我用的的是八軸及六軸聯動運動卡, 介面是採用RJ45網路線傳輸控制碼到機台, 以六軸卡來說內有68個輸入/ 40個輸出, 足夠一般機器使用, 在PC也是用ethernet 與運動卡通訊, 好處是防雜訊比USB好很多, 而且網路線可拉很長很長, 只要你網路可通的話! 我的重點是廠商有提供完整的API函數庫(VB, VC++, VC#, QT)讓你控制CNC所有功能, 包括網卡搜尋, 六軸運動, I/O狀態, 圓弧直線插補, 族繁不及備載, 該有的應該都有了, 端看你要如何應用, 我打算用跑Linux 的ARM板做脫機, 我這裡有一些相關pdf資料, 如果有興趣的人可提問. 程式控制很簡單, 以C#為例: (1)專案加入IMC_PKG.cs (2)程式前面加上 using imcpkg; //--------------------------------------------------------------------- //單軸連續移動(continue) private void MachineMove(int axis, bool bDirection) { double acc = 10; double startvel = 100; double tgvel = 100; IMC_Pkg.PKG_IMC_SetAccel(Global.gHandle, acc, acc, axis); if ( bDirection ) IMC_Pkg.PKG_IMC_MoveVel(Global.gHandle, startvel, tgvel, axis); else IMC_Pkg.PKG_IMC_MoveVel(Global.gHandle, -startvel, -tgvel, axis); } //--------------------------------------------------------------------- //單軸移動至指定位置(step) private void MachineMove(float pos, int axis) { double acc = 10; double startvel = 100; double tgvel = 100; int pulse_per_mm = 5120; //steps_per=pulse/mm int dist = (int)(pos * pulse_per_mm); IMC_Pkg.PKG_IMC_SetAccel(Global.gHandle, acc, acc, axis); IMC_Pkg.PKG_IMC_MoveDist(Global.gHandle, dist, startvel, tgvel, 0, axis); } //--------------------------------------------------------------------- p.s. 詳細的iMC3062E規格可留言向我索取或解答, 謝謝了。 https://goods.ruten.com.tw/item/show?21925786070681
原文網址 石小川 2019-12-05 07:42:33
此種工業相機可用程式控制內部一些參數,對於機器視覺有興趣的朋友可以參考一下此套件。 技術提示 : 值得一提的是此款工業相機是可以自已寫程式控制參數的, 例如圖像尺寸(ROI)、拍照、曝光時間、GAMMA、對比差、亮度、自定義LUT、鏡頭翻轉、RGB顏色增益、飽和度、銳度、彩色轉黑白、色溫校正、反色、9組十字線位置和顏色、觸發模式、幀率控制,有附SDK及C#、C++ Builder、Delphi、labView、QT5、VB、VC等範例可參考,對於喜歡寫自動控制程式的人來說非常方便。 鏡頭及相機可拆賣, 有(A)、(B)、(C)三個套餐可選,下標後請註明套餐並自行修改金額即可, 謝謝惠顧! (A). 工業相機usb高清300萬像素 支持Halcon 工業摄像頭機器視覺相機送SDK + 高清2.8-12mm300萬像素手動光圈鏡頭無畸變可 調視覺工業檢测镜頭 - NT$4100 (B). USB高清300萬像素工業相機機器視覺相機送SDK – NT$2500 (C). 高清2.8-12mm300萬像素手動光圈鏡頭無畸變可調視覺工業檢测镜頭 – NT$1600 https://goods.ruten.com.tw/item/show?21925793582980
Wilson Kao 2020-02-26 16:05:59
這個可以用在紡織業瑕疵檢測?
原文網址 石小川 2019-12-05 07:33:19
討論主題
發文排行榜
回文排行榜
熱門關鍵字