亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于雙口RAM實現(xiàn)雙核通信模塊的驅動設計

        2014-09-28 01:13:34潘必超
        電子器件 2014年1期

        潘必超,曹 彪

        (1.廣東機電職業(yè)技術學院信息工程學院,廣州510515;2.華南理工大學機械與汽車工程學院,廣州510640)

        基于雙口RAM實現(xiàn)雙核通信模塊的驅動設計

        潘必超1,曹 彪2*

        (1.廣東機電職業(yè)技術學院信息工程學院,廣州510515;2.華南理工大學機械與汽車工程學院,廣州510640)

        傳統(tǒng)單核心控制器受制于硬件結構相對封閉,可控參數(shù)有限,一定程度上影響了工藝過程控制的靈活性。設計一種開放式的控制器,實現(xiàn)過程控制網絡化是當今物聯(lián)網發(fā)展的趨勢。文章基于嵌入式Linux系統(tǒng)平臺,使用高速雙端口RAM芯片CY7C024AV2,提出一種模塊化的DSP與ARM的雙核通信模塊方案及其驅動程序的設計,實現(xiàn)了控制器的雙核數(shù)據通信功能,為控制器的網絡智能控制建立了軟件基礎。實驗證明,該驅動程序的支持下控制器的雙核數(shù)據通信性能滿意。

        嵌入式;雙核;物聯(lián)網;驅動程序

        隨著物聯(lián)網產業(yè)的發(fā)展,工業(yè)控制智能化需求日漸提高??刂破鞒艘缲撟陨磉^程控制的基本功能外,還應該具備一定的對外界環(huán)境的感控功能,從而實現(xiàn)物物相連。這就要求控制器必須具有開放的接口并實現(xiàn)高效的數(shù)據交互技術。就電源控制器領域來說,近年來以DSP、ARM為數(shù)字化控制核心的焊接電源成為了研究的熱點,由于其高性能高可靠性得到了廣泛的應用[1-2]。配合嵌入式Linux操作系統(tǒng)的開放性,控制器將具有更高的控制靈活性。但過去的控制器硬件架構相對比較封閉。若在控制器中實現(xiàn)開放的網絡接口,實現(xiàn)控制器網絡互連,過去傳統(tǒng)面向焊接工藝過程控制具有單一處理器架構的控制器則難以滿足需求。為了滿足電源控制器聯(lián)網而產生的復雜多任務需求,ARM與DSP構成的雙核控制器架構日趨普及。目前雙核控制器的工業(yè)解決方案常見兩種:單芯雙核與雙芯雙核??紤]到盡量保留已有產品硬件結構基礎上,并結合控制器成本、模塊化設計以及并行開發(fā)問題,本文采用雙芯雙核的松耦合架構實現(xiàn)控制器。對于該種架構,包含雙核通信協(xié)議IPC的驅動程序設計則成為了設計的關鍵點和難點[3-5]。本文提出了一種基于雙端口芯片CY7C024AV2實現(xiàn)控制器雙向異步通信的方案,并在Linux下實現(xiàn)了ARM與雙端口RAM的驅動程序。實驗結果證明,該通信架構具有較高的可靠性。

        1 核間通信的硬件電路連接

        CY7C024AV2是由Cypress公司專門為多核通信而推出的一款雙端口異步存儲芯片。該芯片可作為RAM芯片獨立使用,也能同時與兩種不同速率的MCU相連接實現(xiàn)傳輸速率匹配。且內置了多種防止數(shù)據訪問沖突的保護機制。該存儲芯片的存取周期達到20 ns,理論帶寬可以達到50 Mbit/s×16 bit/s。圖1給出了ARM芯片AM1808以及C2000系列DSP與雙端口RAM接口互連電路模塊的電路原理圖。AM1808使用EMIFA(External Memory Interface A)與CY7C024AV2其中一個端口相連接。EMIFA是AM1808用于與外部存儲器連接訪問的控制器[6],其主要用途是提供一種通用的連接方法,使CPU能與多種不同的外部存儲設備相連接。這些外部設備可以是SDRAM、Flash與SRAM。在本設計方案中,線路連接的時候需要注意的是EMIFA的數(shù)據位寬是32位的,而CY7C024AV2是16位存儲器[7],在地址總線上,采用了EMA_BA_1引腳連接到了CY7C024AV2的最低地址線。這樣就使得通信雙方地址空間相匹配,均為16位數(shù)據存儲單元地址。而DSP端的數(shù)據位寬是16位[8],與CY7C024AV2相一致,所以無需做特別處理。

        圖1 控制器內雙核間通信接口原理

        硬件設計上,基于本文雙核通信方案網絡擴展模塊(后面簡稱為模塊)的電路板實物如圖2所示。模塊上集成了調試COM口、以太網口、IP地址撥碼器、雙端口RAM以及基于DDR2接口封裝可拆卸AM1808模塊。模塊與逆變焊機控制底板使用圖示模塊左邊緣排線接口相連。模塊化的設計更有利于整機成本的控制。

        圖2 控制器雙核通信電路擴展模塊

        2 驅動程序設計與實現(xiàn)

        嵌入式Linux系統(tǒng)主要通過驅動程序來駕馭硬件設備。驅動硬件是操作系統(tǒng)最基本的功能,并且提供統(tǒng)一的操作方式。嵌入式Linux驅動的一個重要特點就是將所有的設備都當作是文件進行處理[9]。因此,嵌入式Linux下的設備驅動程序設計主要需要完成3個任務,分別是硬件板級初始化、驅動程序初始化以及驅動程序文件接口的實現(xiàn)[10]。驅動程序整體結構如圖3所示。

        圖3 通信模塊驅動程序結構

        2.1 板級初始化工作

        本控制器ARM采用的AM1808,Linux在加載驅動程序前,ARM訪問雙端口RAM所使用的EMIFA接口的數(shù)據IO、地址IO和控制IO引腳必須處于正常的工作模式。工作模式由相應的MUX寄存器決定的,可以通過宏MUX_CFG實現(xiàn)工作模式的切換,使用代碼如下:

        上述代碼中,MUX_CFG宏的第6個參數(shù)為關鍵參數(shù),該參數(shù)的取值則為該IO引腳的實際工作模式。

        其次,板級初始化還需要配置EMIFA訪問時序參數(shù),該參數(shù)設置了總線接口中的訪問控制線在一次讀動作以及一次寫動作中的邏輯時序,該參數(shù)的取值主要由被訪問芯片的推薦工作參數(shù)決定[6-7]:

        static struct davinci_aemif_timing da850_evm_sram_timing=

        在BSP源碼包中,結構體davinci_aemif_timing定義了EMIFA總線訪問讀、寫時序的6個重要參數(shù)。上述代碼中相應時間參數(shù)的單位是EMIFA總線時鐘周期。默認情況下,總線時鐘周期是系統(tǒng)時鐘周期的2分頻。

        2.2 設備的文件接口的實現(xiàn)

        Linux驅動程序將設備視為文件。除了網絡設備之外,字符設備和塊設備都被映射到Linux文件系統(tǒng)的文件和目錄??梢圆捎迷L問文件的方式訪問物理設備[11-12],見圖3所示字符設備驅動結構。但前提是在驅動中需要實現(xiàn)若干文件訪問接口。通過文件系統(tǒng)的系統(tǒng)調用接口open()、write()、read()、close()等函數(shù)即可訪問設備。

        本文驅動程序中訪問雙端口 RAM芯片CY7C024AV2需要實現(xiàn)的文件訪問接口包括:

        (1)打開芯片(文件)接口 這里主要負責EMIFA接口工作模式的初始化;在內核空間中申請足夠的緩沖空間;分配填寫至于filp->private_data的數(shù)據結構;檢查雙端口RAM芯片是否就緒等。

        (2)釋放芯片(文件)接口 釋放已申請的緩沖區(qū)空間以及系統(tǒng)分配的內存空間。這里包括打開芯片時候分配的 filp->private_data所指向的內存空間。

        (3)讀取芯片(文件)接口 該接口的主要作用是將雙端口RAM中的數(shù)據通過調用copy_to_user ()函數(shù)實現(xiàn)從內核空間向用戶空間復制數(shù)據;從而實現(xiàn)讀取雙端口RAM的功能。

        (4)寫入芯片(文件)接口 該接口的主要作用是調用copy_from_user()函數(shù)實現(xiàn)從用戶空間將數(shù)據復制到內核空間,從而實現(xiàn)寫入雙端口RAM的功能。

        (5)索引芯片(文件)接口 EMIFA功過在16bit異步數(shù)據收發(fā)模式,在RAM芯片尋址時候相應地也要實現(xiàn)基于雙字節(jié)為單位的偏移量計算。從而才能正確定位數(shù)據收發(fā)的起始地址。

        本驅動程序中,file_operations結構體的配置代碼如下:

        文件訪問接口中比較關鍵的是兩個操作。第一是實現(xiàn)從內核空間到用戶空間的數(shù)據傳遞。copy_ from_user函數(shù),主要實現(xiàn)從用戶空間向內核空間傳遞數(shù)據。而copy_to_user函數(shù)實現(xiàn)從內核空間向用戶空間發(fā)送數(shù)據。第二是實現(xiàn)物理地址向內核地址的映射,即ioremap()函數(shù)的調用。

        2.3 驅動程序初始化

        從AM1808參考手冊可以查到EMIFA接口的物理地址是0x60000000,需要在驅動程序頭文件中聲明雙口RAM的物理地址常量SRAM0_PHYADDR。同時雙端口RAM覆蓋2 kbyte地址空間,需要聲明內存容量MEMDEV_SIZE。代碼如下:

        #define SRAM0_PHYADDR 0x60000000

        #define MEMDEV_SIZE 0x2000

        驅動程序初始化,其關鍵任務主要有兩個:完成驅動程序注冊以及建立物理內存空間和內核內存空間的地址映射關系。初始化流程如圖4所示,驅動程序首先通過調用register_chrdev_region函數(shù)向內核注冊一字符型驅動程序。注冊成功后,通過調用cdev_init函數(shù)實現(xiàn)注冊訪問雙端口RAM芯片的文件訪問接口。這里面包括了本文3.2節(jié)中指出的芯片讀、芯片寫、芯片打開、芯片釋放以及片內地址定位等5個常用的文件訪問接口。

        圖4 驅動程序初始化流程圖

        建立芯片內存地址到內核空間地址的映射關系,是Linux驅動程序最為關鍵的一步。首先,調用了kmalloc函數(shù),在內核空間中申請一個設備結構體變量空間。該結構體主要用以記錄雙端口RAM的實際物理地址以及內核空間地址。第2步,使用request_ mem_region函數(shù)登記物理地址空間SRAM0_PHYADDR開始的2 kbyte空間被占用。最后,調用ioremap函數(shù),建立物理地址空間到內核地址空間的映射關系。這樣,驅動程序可以通過訪問內核空間地址來實現(xiàn)對雙端口RAM芯片物理地址的訪問。

        3 驅動程序測試

        3.1 讀寫控制線時序的驗證

        為了驗證驅動程序訪問雙端口RAM時序,實驗采用示波器測試ARM芯片AM1808EMIFA接口上的片選信號(CS)和輸出使能信號(OE)。圖5所示,信道1為EMIFA片選信號,該信號為低有效。信道2為DRAM輸出使能信號信號。在一次讀操作中,由于AM1808總線工作在32 bit模式,而EMIFA配置成了16 bit異步模式,因此EMIFA需要完成2次讀請求動作。因此圖3中CS控制信號與OE信號分別依次輸出2次有效信號。從讀寫訪問周期上,單次16位讀寫周期為180 ns,符合2.1節(jié)中預期的設計要求。

        圖5 AM1808讀操作控制線時序波形

        3.2 連續(xù)讀寫性能測試

        在3.1節(jié)訪問控制時序正確的前提下,進一步進行雙核通信連續(xù)讀寫測試。這里使用32通邏輯分析儀,如圖 6所示,CH1~CH11分別掛接在AM1808與DRAM的數(shù)據總線上,CH17掛接在輸出使能OE引腳上。采用測試邏輯是DSP先向DRAM 2 kbyte字節(jié)順序寫滿20~210,由AM1808執(zhí)行進行連續(xù)讀請求。由圖上可見數(shù)據總線能呈現(xiàn)出20~210的數(shù)據返回值。在2.1節(jié)中,由于當前驅動參數(shù)設置了一次讀寫周期為180 ns,圖4下方時間坐標軸時間單位為μs,本次測試在35μs時間內完成了192次讀操作,因此在該驅動參數(shù)下控制器雙核通信帶寬達到雙向88 Mbit/s。這個通信帶寬能完全滿足正??刂撇蓸訑?shù)據的高速上傳。

        圖6 邏輯分析儀記錄AM1808連續(xù)讀雙端口RAM信號

        4 結語

        本文在嵌入式Linux系統(tǒng)之上采用雙端口型高速RAM芯片CY7C024AV2開發(fā)控制器雙核擴展模塊及其驅動程序,實現(xiàn)了控制器ARM+DSP的雙核通信架構,從而在原電源控制器基礎上實現(xiàn)了網絡接口的擴展。這將大大提高了控制器對于過程工藝控制開放性,為控制器互聯(lián)及其物聯(lián)網控制提供了硬件基礎和軟件基礎。在示波器和邏輯分析儀的輔助下,本文所設計的驅動程序的正確性得到了驗證,同時基于該驅動程序之上的雙核通信模塊也具備了較高的通信性能。

        [1]郝小江.基于DSP逆變焊接電源數(shù)字控制[J].電焊機,2010,40(9):40-42.

        [2]霍明.基于ARM控制的多功能數(shù)字化逆變焊接電源[J].焊接技術,2009,38(2):5-8.

        [3]劉玉珍,張曄.雙端口RAM在ARM與DSP通信系統(tǒng)中的應用[J].計算機系統(tǒng)應用,2011,20(11):213-216.

        [4]安劍奇,廖麗清,溫興清.高速雙端口共享存儲器IDT7025及其應用[J].電子工藝技術,2006,27(5):291-293.

        [5]朱欣華.多機系統(tǒng)中雙口RAM的構成方法及應用[J].測控技術,2006,15(2):44-46.

        [6]AM1808/AM1810 ARM Microprocessor Technical Reference Manual[M].Texas Instruments,December 2011.

        [7]CY7C024AV Technical Reference Manual(Document38-06052)[S].Cypress Semiconductor Corporation,March 30,2011.

        [8]TMS320F28335 Digital Signal Controllers(DSCs)Data Manual (Literature Number:SPRS439I)[M].Texas Instruments,March 2011.

        [9]章堅武,許曉榮,李波.基于嵌入式Linux的雙口異步RAM驅動開發(fā)[J].電子器件,2006,29(2):536-538.

        [10]屈克文,石奮蘇.基于ARM-Linux的旋轉編碼器接口與驅動程序的設計[J].計算機應用,2011,31(12S):156-163.

        [11]Ju Jinwu,Cai Lecai,Luo Renjia.The Design of Linux Driver of WSN Nodes Based on ARM[C]//Intelligent Computation Tech-nology and Automation(ICICTA),2011 International Conference,Page(s):761-764.

        [12]Liu Long,Zhang Yuncui.Improved Method of Computer Keyboard Driver Based on Embedded Linux[C]//Fuzzy Systems and Knowledge Discovery(FSKD),2012 9th International Conference,Page (s):2482-2486.

        Driver Designed for Dual-Core Communication Module Based on Dual-Port RAM

        PAN Bichao1,CAO Biao2*
        (1.College of Information Engineering,Guangdong Ji Dian Polytechnic,Guangzhou 510515,China; 2.School of Mechanical and Automobile Engineering,South China University of Technology,Guangzhou 510640,China)

        The flexibility of process control is greatly affected by the relatively closed hardware architecture and limited amount of control parameters.It is a trend to develop a smart controller with open hardware architecture which can make it possible of control process network.With the use of Dual-Port RAM CY7C024AV2,A dual-core solution with DSP and ARM is presented,as long as the driver development under embedded Linux for the dual-core controller module.The driver presented provided software basis for intelligent network controlmethods.Experiment result shows that the driver can achieve a good performance on inter-core communication.

        embedded system;dual-core;internet of things;driver

        10.3969/j.issn.1005-9490.2014.01.013

        TP31 文獻標識碼:A 文章編號:1005-9490(2014)01-0050-05

        2013-05-11修改日期:2013-06-12

        EEACC:6210C

        潘必超(1978-),男,漢族,廣東惠州人,廣東機電職業(yè)技術學院講師/系統(tǒng)分析師,碩士,研究方向為數(shù)字化電源裝備及智能控制技術,物聯(lián)網應用技術,bcpan@126.com;

        曹 彪(1963-),男,漢族,貴州盤縣人,教授/博士生導師,研究方向為數(shù)字化電源設備及智能控制技術:高性能工業(yè)逆變電源的設計、計算機仿真與智能控制,電力電子技術,新型開關電源及應用技術。

        一本一道vs无码中文字幕| 午夜日本精品一区二区| 情头一男一女高冷男女| 欧美最猛性xxxx| 国产中文字幕免费视频一区| 亚洲一区二区三区小说| 国精品人妻无码一区免费视频电影| 久久乐国产精品亚洲综合| 人妻无码在线免费| 日韩精品视频av在线观看| 男女肉粗暴进来动态图| 亚洲欧美日韩中文在线制服| 精品熟女少妇免费久久| 在线观看亚洲视频一区二区| 国产三级黄色免费网站| 国产精品永久免费| 欧美喷潮系列在线观看| 国产精品日本天堂| 国产一区二区三区尤物| 欧洲女人与公拘交酡视频| 成人无码一区二区三区网站| 草莓视频在线观看无码免费| 国产亚洲av综合人人澡精品| 欧美熟妇另类久久久久久多毛| 亚洲日本在线电影| 在线观看亚洲精品国产| 亚洲熟女天堂av一区二区三区| 亚洲妇熟xxxx妇色黄| 女同久久精品国产99国产精品| av无码电影一区二区三区| 精品人妻69一区二区三区蜜桃| 色天使综合婷婷国产日韩av | 国产伦一区二区三区色一情| 精品www日韩熟女人妻| 国产日韩久久久精品影院首页| 亚洲一区二区三区厕所偷拍| 亚洲视频专区一区二区三区| 中文人妻av久久人妻水蜜桃| 欧美精品一区二区蜜臀亚洲| 久久亚洲AV无码精品色午夜| 国产一区二区三区成人av|