• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      S3C2510A的SCARA機械臂控制系統(tǒng)設計*

      2011-06-25 02:45:26王興川方建軍
      關鍵詞:控制卡內核寄存器

      王興川,方建軍

      (1.北方工業(yè)大學機電工程學院,北京 100144;2.北京聯(lián)合大學)

      王興川(碩士研究生),研究方向為嵌入式系統(tǒng)應用;方建軍(教授),主要研究方向為機器視覺、智能機器人技術以及嵌入式系統(tǒng)應用。

      引 言

      目前,機械臂的控制系統(tǒng)普遍采用“PC/工控機+運動控制卡”的開發(fā)模式,但其體積較大、功耗高、攜帶不方便等不足之處成為其進一步發(fā)展的障礙。隨著嵌入式技術的日益發(fā)展,ARM處理器的性能不斷提高,因此可以考慮用ARM處理器來代替PC/工控機作為控制系統(tǒng),使得系統(tǒng)具有體積小、重量輕、功耗低、便于攜帶的特點,同時將嵌入式操作系統(tǒng)Linux或者VxWorks移植到控制系統(tǒng)中,使其滿足對實時性的要求。

      PCI總線作為一種先進的高性能32/64位局部總線,非常適合于顯示卡、網卡、多串口卡等高速外設。PCI總線具備32位的數據總線,時鐘頻率可達66 MHz,傳輸速率最高可達264 MBps,能夠滿足高速數據傳輸的需要。大多數數據處理模塊、通信處理模塊都具有PCI接口。本文采用Samsung公司基于ARM940T內核的處理器S3C2510A和帶有PCI接口的運動控制卡的嵌入式架構,實現了深圳固高公司SCARA機械臂的控制系統(tǒng)。該方案省去了用的PCI接口芯片(如 PLX9054),降低了電路設計難度。

      1 系統(tǒng)硬件設計

      1.1 總體設計方案

      系統(tǒng)整體結構如圖1所示??刂葡到y(tǒng)可以劃分為:以S3C2510A為核心的主控系統(tǒng)和帶有PCI接口的運動控制卡。主控芯片S3C2510A具有4 KB的I-Cache和 4 KB的D-Cache,其最高運行頻率可達166 MHz。主控系統(tǒng)直接采用芯片內置的SDARM控制器、PCI控制器和10M/100M以太網控制器等。系統(tǒng)的外部時鐘源為10 MHz,設置芯片引腳 CLKMODO 、CLKMODI、CPU_FREQ1、BUS_FREQ0為高電平,設置引腳 CPU_FREQ0、CPU_FREQ2 、BUS_FREQ1、BUS_FREQ2為低電平 ,然后經過S3C2510A的4個內置倍頻器使系統(tǒng)內核的工作頻率為133 MHz,PCI設備運行頻率為66 MHz。

      圖1 系統(tǒng)整體結構

      主控系統(tǒng)由主控芯片、存儲系統(tǒng)和調試接口3部分組成。存儲系統(tǒng)由2片 16 MB、16位的 SDRAM 芯片K4S281632E和1片16 MB的Flash S29GL128M 組成,除此之外,還包括1個高速UART、1個JTAG硬件調試接口和1個10M/100M的以太網接口。

      S3C2510A內部集成的PCI總線控制器與PCI總線規(guī)范2.2版本相符合,具有32位地址/數據復用總線,支持非線性傳輸和突發(fā)傳輸,最高數據傳輸速率可達264 MBps/66 MHz或者132 Mbps/33 MHz。該處理器的引腳定義是根據PCI總線來命名的,因此只需將S3C2510A的PCI控制引腳引出,將引腳 IDSEL與PCIAD12連接作為初始化設備選擇信號。圖2是S3C2510A與 PCI插槽的連接圖。

      系統(tǒng)通電后,PCI插槽上的運動控制卡等待主控系統(tǒng)信號的輸入;得到控制系統(tǒng)的控制信號后,運動控制卡便可控制SCARA機械臂的運動。控制系統(tǒng)調試可以通過UART串口來完成,通過系統(tǒng)上的網口可以實現控制系統(tǒng)的遠程控制。

      圖2 S3C2510A與PCI插槽的連接圖

      1.2 S3C2510A中PCI總線控制器

      S3C2510A處理器內部集成了PCI/MINI-PCI和 PC Card控制器。根據該系統(tǒng)的需要,應將PCI控制器設置在PCI Host的工作模式,通過設置 S3C2510A的 PCI_PCCDM和PCI_HOSTM兩個引腳來實現。S3C2510A中PCI總線控制器的工作模式如表1所列。

      表1 S3C2510A中PCI總線控制器的工作模式

      1.3 控制系統(tǒng)以及PCI總線控制器的啟動順序

      系統(tǒng)上電后,系統(tǒng)PCI總線控制器的啟動順序如圖3所示。在對PCI總線控制器的特殊功能寄存器進行配置時要關閉中斷,即設置PCIINTEN=0。然后設置PCI控制和狀態(tài)寄存器PCICON[ARB,ATS,SPL,IOP,MMP],在一些情況下還要設置PCI診斷寄存器。接著設置與基地址有關的寄存器PCIBAM0~1和PCIBATPA0~2,為了防止重啟信號和時鐘信號沖突,還要配置有關PCI重啟和時鐘寄存器PCIRCC[MSK]=0。

      在PCI總線控制器偵測帶有PCI接口的運動控制卡并初始化外圍設備的寄存器時,需要完成以下工作:首先,讀取所有的配置寄存器值,包括PCIHID、PCIHSC、PCIHSSID等;然后檢查BAR(Backup Address Register)的范圍,并一一分配空間;最后使能外部設備并激活總線。這些配置都是在PCI運動控制卡的驅動中程序完成的,因為已經把驅動程序加載到了μClinux的內核中,所以系統(tǒng)啟動之后操作系統(tǒng)會自動配置PCI外部設備。

      2 系統(tǒng)軟件設計

      系統(tǒng)軟件主要由Bootloader和嵌入式μClinux兩大部分組成。在嵌入式系統(tǒng)中,通常并沒有像BIOS那樣的固件程序,整個系統(tǒng)的加載啟動任務完全由Bootloader來完成。簡單地說,Bootloader就是在操作系統(tǒng)內核運行之前運行的一小段程序。通過這段程序,可以初始化硬件設備、建立內存空間的映射圖,從而將軟件的軟、硬件環(huán)境設置到一個合適的狀態(tài),以便為最終調用操作系統(tǒng)內核準備好正確的環(huán)境。本系統(tǒng)采用通用的 U-boot。嵌入式μClinux是這個系統(tǒng)的操作系統(tǒng),主要包括設備驅動程序和上層應用程序。這里主要介紹一下 U-boot的移植方法和uClinux中PCI設備驅動程序的實現。

      2.1 Bootloader的移植

      Bootloader的具體移植步驟如下:

      ①下載并解壓U-boot,修改主目錄下的Makefile,改變交叉編譯的路徑,即 CROSS_COMPILE=/home/lvlang/arm2510a/crosstoll/gcc-4.1.1-glibc-2.3.2/arm9tdmi-linuxgnu/bin/arm-9tdmi-linux-gnu-。

      ②在/board子目錄中建立自己的硬件系統(tǒng)目錄,在include/configs/中建立配置頭文件,把支持S3C2510A的配置頭文件s3c2510x.h改成系統(tǒng)的名字lvlang2510A.h,并測試編譯能否成功,即Make lvlang2510A_config。若出現Configuring for lvlang board...,則說明U-boot的第一步移植成功。

      圖3 系統(tǒng)PCI總線控制器的啟動順序

      ③根據硬件系統(tǒng)的具體情況進行源碼修改,包括相關寄存器、Flash和 SDRAM 的相關配置,根據RUBRDIV0=((int)(MCLK/16./(gd->baudrate)+0.5)-1)來修改串口的波特率。

      ④將start.s中鏡像的入口點設置為0x0地址,然后編譯U-boot生成 U-boot鏡像文件,通過JTAG下載到Flash中并重啟系統(tǒng),即可通過串口在超級終端中看到啟動信息了,至此移植U-boot成功。

      2.2 μClinux設備驅動程序的編寫

      Linux的內核是由設備管理、進程管理、內存管理和文件系統(tǒng)組成,Linux設備驅動可以分為字符類設備、塊類設備、網絡接口類設備和其他非標準驅動。PCI設備被看作是字符型設備。

      每個PCI外設都由1個總線號、1個設備號和1個功能號來標識,共有3個訪問空間,即內存空間、I/O端口和配置寄存器。PCI配置空間由256個字節(jié)組成,且每個設備功能都有一個配置空間,用于決定PCI器件的工作方式和映射到系統(tǒng)中的地址。相關函數如下:

      下面介紹在μClinux中添加帶有PCI運動控制卡驅動的步驟。

      ①創(chuàng)建一個PCI設備,命令為mknod pci_dev c 245 0。其中,c表示字符設備,245表示主設備號,0代表次設備號。

      ②初始化外部設備,將函數pci_dev_init()添加到uClinux/linux/drivers/char/mem.c文件的chr_dev_init()中,chr_dev_init()將在系統(tǒng)啟動時被調用,會完成設備驅動的初始化工作。

      ③編寫設備驅動文件pci_dev.c。設備注冊接口函數和中斷處理函數等構成了PCI設備驅動主要代碼,即file_operations中的函數。設備驅動與內核關系緊密,在編寫過程中需要注意庫函數的使用和I/O空間分配。在嵌入式系統(tǒng)編程過程中無法使用LibC提供的標準庫。要根據S3C2510A的PCI配置寄存器所給定的基址來讀寫數據。因為PCI定義的I/O空間是32位地址空間,因此內存和I/O可以使用相同的配置接口。

      ④加載PCI設備。因為μClinux不支持設備驅動的動態(tài)加載,因此需要把驅動編譯到μClinux內核中。首先需修改makefile文件,添加obj_$(CONFIG_PCI_DEV)+=pci_dev.o;接著修改 config.in,添加 bool′pci_dev install′CONFIG_PCI_DEV,以便在配置目標板Linux系統(tǒng)內核時對這個設備進行選擇;最后在目標系統(tǒng)的makefile中添加設備節(jié)點pci_dev,c,245,0。這樣在配置Linux內核時就可以選擇pci_dev install,然后進行編譯,這樣PCI設備驅動就加載到了μClinux系統(tǒng)中。

      3 結 論

      使用本文設計的控制系統(tǒng)以及帶有PCI接口的運動控制卡和液晶屏組成的系統(tǒng),即可實現對SCARA機械臂的運動控制,可以代替?zhèn)鹘y(tǒng)的以PC機或工控機作為控制系統(tǒng)的控制方式,在不失實時性的要求下對SCARA機械臂進行準確的控制。本設計創(chuàng)新之處是:系統(tǒng)采用嵌入式μClinux操作系統(tǒng)和32位帶有PCI接口的嵌入式處理器,在不影響系統(tǒng)性能的同時降低了電路的設計難度,減小了系統(tǒng)的體積、功耗。該系統(tǒng)除了用于帶有PCI接口的運動控制卡外,還可以用于其他任何帶有PCI接口的設備,具有較強的通用性。

      [1]符意德,陸陽.嵌入式系統(tǒng)原理及接口技術[M].北京:清華大學出版社,2007.

      [2]尹勇,李宇.PCI總線設備開發(fā)寶典[M].北京:北京航空航天大學出版社,2005.

      [3]Samsung Electronics.S3C2510A 32bit RISC Microprocessor User's Manual,2003-03.

      [4]李俊.嵌入式設備驅動開發(fā)詳解[M].北京:人民郵電出版社,2008.

      [5]孫天澤,袁文菊.嵌入式設計及Linux驅動開發(fā)指南——基于ARM9處理器[M].北京:電子工業(yè)出版社,2007.

      [6]Jonathan Corbet,Alessandro Rubini,Greg Kroah-Hartman.Linux設備驅動程序[M].魏永明,耿岳,鐘書毅,譯.3版.北京:中國電力出版社,2010:300-322.

      猜你喜歡
      控制卡內核寄存器
      兼容多種運動控制卡的V割機數控系統(tǒng)關鍵技術*
      萬物皆可IP的時代,我們當夯實的IP內核是什么?
      現代裝飾(2022年4期)2022-08-31 01:41:24
      強化『高新』內核 打造農業(yè)『硅谷』
      Lite寄存器模型的設計與實現
      計算機應用(2020年5期)2020-06-07 07:06:44
      基于嵌入式Linux內核的自恢復設計
      Linux內核mmap保護機制研究
      分簇結構向量寄存器分配策略研究*
      基于運動控制卡的桁架機器人控制系統(tǒng)設計
      凌華科技四軸伺服/步進運動控制卡PCI-C154+
      高可靠性通信設備主備倒換軟件實現方法
      電視技術(2013年11期)2013-07-25 07:41:16
      山东省| 岳普湖县| 洪江市| 密山市| 呼玛县| 黑水县| 多伦县| 长丰县| 五华县| 山丹县| 大田县| 武夷山市| 平罗县| 林甸县| 湘潭县| 高邮市| 金阳县| 海阳市| 沂源县| 定兴县| 安义县| 南华县| 彰化市| 右玉县| 沁源县| 九江县| 南昌市| 铜梁县| 吴忠市| 五家渠市| 黔西| 栖霞市| 蓬莱市| 内乡县| 沁源县| 天水市| 铜川市| 闽清县| 庆元县| 新河县| 长垣县|