需求:

1.能夠控制步進電機2.讀取感測器的模擬量,能夠進行PID閉環控制

3.將步進電機轉動的當前位置顯示在數碼管

4.模擬量輸入/輸出5.通過RS232和上位機通訊,或者DiveceNet接入匯流排另外也希望您能回答這個相關問題:

http://www.zhihu.com/question/19852276(硬體產品,如何從一個開發板上的原型Demo變成可靠的產品?)

謝謝!


方案1合適,普適性強,用arm就不太適合自己調驅動了,設計自由度會下降
我的建議低端方案,一片ARM搞定。

高端方案,FPGA做各種xxPWM,死區控制,反正就是驅動器的控制部分,能達到很高的精度和非常精準的時序。FPGA也同時處理刷數碼管或者LCD這種事情。

FPGA和外置ARM處理器進行連接,ARM控制FPGA的電機驅動器進行各種動作控制以及PID的計算,這裡是考慮到感測器接ARM上一般比較方便。
前者合適,簡單實用,低成本。後者可以說完全用不上
兩個方案各有優劣吧~單片機+CPLD有些數據部分可以直接用verilog調用,如果了解步進電機的控制地址和控制字,cpld控制起來很直接,不過要考慮串列的傳輸格式,需要留意時鐘頻率和時序。模擬量輸入輸出部分cpld貌似相對直觀一些。可能需要調時序,相對比較麻煩,但每一位的數據你都是清楚的。。cpld留出單片機的控制介面吧~初期比較簡單,但後續修改相對麻煩。

ARM的不太了解,看看是否有現成的驅動吧,有的話會節省很大工作量~不然可能就還是要從底層的控制字開始看,然後在封裝成C代碼。前期工作量較大,但後續修改等會相對簡單。

兩個方案都需要先對每個控制晶元的控制方式、地址、控制字等了解,但操作的方式不太一樣。經驗較少,只能說些個人淺薄的理解~

看你想花多少錢了。

快速成型,當然一塊ARM就好了,又便宜學習成本又低,用上VxWorks或者RTLinux一樣能實現實時。

高端一點可以結合ARM(用來做計算)和控制器(一般是一些ASIC啥的)當然不差錢的話也可以直接一塊FPGA都搞定。
控制步進電機,是想自己做電機驅動器嗎?如果是用驅動器的話,現在很多51都可以做,程序10K以內,如果想自己把驅動器集成進去,那你有的搞了。
既然是實用為什麼不用plc呢?
推薦閱讀:
相关文章