基于ARM的嵌入式系統在機器人控制系統中的應用
3.2 系統設計
此系統的設計主要是為了能夠滿足多種機器人控制需求,同時兼顧機器人對控制器體積、重量、功耗等敏感的特性。
上位機CPU選用Samsung公司的基于ARM920T[5,6]核(適用于實時環境)的低功耗、16/32 bit、高性能RISC微控制器S3C2410,它的主頻為266MHz;操作系統選用源碼公開、專為ARM設計的、可靠性高的實時、多任務內核arm- Linux;下位機選用Ti公司的具有低功耗、靈活指令集、內部操作靈活、高速的運算能力等性能的DSP-TMS320LF2407。
3.2.1 體系結構
基于ARM、DSP和arm-Linux的機器人控制系統硬件結構圖如圖1所示。
圖1 機器人控制器硬件結構
上位機主要解決算法問題,處理各個傳感器送回的信號,根據各個信號,向下位機發送控制命令,同時,上位機接收來自下位機的信號,判斷下位機的狀態,以便發送相應的數據和命令。下位機主要是對電機的控制,根據上位機發送過來的命令和數據,結合前饋算法和PID算法,對電機進行速度、位置等控制。
不同類型的機器人,其主要區別在于上位機的算法編寫,上位機的算法與具體的機器人所要求完成的任務有關。在一個機器人系統中,只需一個上位機,作為機器人的“大腦”;下位機的個數則根據機器人需要而定。
3.2.2 硬件設計
硬件設計的原則是:部件模塊化,接口標準化,互換性、擴展性好,可靠性高。
硬件可劃分為CPU模塊、外設模塊。兩個模塊層可疊在一起,機械上可拆分,相互之間有接口相連,便于互換和維護。
1)CPU模塊:上位機包括S3C2410、SDRAM、NAND FLASH、晶振等系統運行的基本要素;下位機包括TMS320LF2407、SDRAM、晶振等系統運行的基本要素。
2)外設模塊:上位機包括電源接口、485總線接口、A/D接口、I/O接口、PWM接口、下位機通訊接口、USB HOST接口、USB SLAVE 接口、LCD接口等,同時它也是傳感器模塊和CPU模塊連接的橋梁;下位機包括電源接口、485總線接口、I/O接口、PWM接口、光電編碼器接口、上位機通訊接口、A/D接口,FLASH等。
S3C2410芯片本身集成了一些通用的外圍器件,所以像A/D、USB、I/O等通道直接利用其資源。片內的2個UART分別用作485總線及與下位機通訊接口,這兩個串口屬于對外連接口,為了避免引入外界干擾,用高速光隔HCPL2630進行隔離。 TMS320LF2407芯片本身也集成了一些通用的外圍器件,可直接利用PWM、A/D、I/O、光電編碼器接口等資源。片內UART用作與上位機通訊接口,也用了光電隔離。
針對不同的機器人,硬件部分只需做簡單的接口調整或傳感器增刪。
控制器集成尺寸:上位機模塊為60mm×45mm×35mm,總功耗約為5V ×200mA,其中CPU模塊功耗盡為3.3V×30mA;下位機模塊尺寸60mm×40mm×30mm,功耗也是很低的,而一般的PC104總線CPU模塊功耗約為5V×1000mA。
3.2.3 軟件設計
軟件設計的基本原則是:軟件結構化,驅動標準化,系統可定制[13]。
軟件設計的主要工作是操作系統的移植、驅動程序的設計、常用API函數的封裝、多任務的分解與設計、上位機算法的編寫和下位機驅動程序與算法的編寫等。其中關鍵在于上下位機的同步性,當多個控制器一起工作時,同步問題更加重要了。上位機把數據傳送給下位機,先把控制器的標號給傳下去,只有與此號碼相對應模塊才能接收下面的數據,當下位機接收到信號后,需要向上位機發送一個確認信號。需要同步多個處理器,分別占用總線。為了使多機通訊同步,不發生信號沖突,在設計硬件時,每個微處理器使用了一個I/O口,并把每個處理器的I/O口用線連在一起。當一個控制器接收或發送數據時,向其它處理器發送一個高信號,來說明自己正在使用總線。接受到該信號的處理器得知總線正在忙,不再發送數據,可避免總線沖突。事實證明這種方法是可行的,不會發生總線沖突,多處理器工作時同步性很好。
評論