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

        ?

        基于VxWorks的PCI-CAN總線交換及驅動開發(fā)

        2013-09-28 03:23:44
        電訊技術 2013年4期
        關鍵詞:管腳驅動程序寄存器

        鄭 煒

        (廣州海格通信集團股份有限公司,廣州510663)

        1 引 言

        某通信控制平臺系統(tǒng)方案中對數(shù)據(jù)傳輸總線的設計是通信控制平臺單機內(nèi)的主板數(shù)據(jù)傳輸總線采用工業(yè)控制領域成熟的PCI總線,其數(shù)據(jù)傳輸速率高,可靠性高,可即插即用;平臺的外部遠程遙控總線采用國際標準的現(xiàn)場總線CAN,具有傳輸字節(jié)短、速度快、容錯性好、數(shù)據(jù)傳輸可靠等特性[1],有效支持分布式控制和實時控制,支持多主方式,總線上分布的任意節(jié)點均可主動向其他的節(jié)點發(fā)送信息。

        為實現(xiàn)外部遙控命令直接送到平臺控制板的嵌入式處理器中,需要設計高速、低成本的PCI-CAN總線交換電路。文獻[1-3]主要介紹了CAN總線的特點、總線標準及應用,以及芯片 PCI9052和SJA1000的應用方案和設計要求,文獻[4]主要介紹了VxWorks操作系統(tǒng)下開發(fā)PCI總線驅動程序的基本方法。本文結合設計需求和文獻相關內(nèi)容設計開發(fā)了PCI-CAN總線交換的硬件電路和驅動程序,并給出了設計中的關鍵點和處理建議。

        2 硬件設計

        2.1 總體方案設計

        PCI-CAN總線交換硬件電路設計主要由PCI橋芯片PCI9052、CAN總線控制器SJA1000和CAN總線驅動器PCA82C251組成。

        PCI9052兼容PCI V2.1規(guī)范,支持目標設備的直接數(shù)據(jù)傳輸,具有4個片選空間,可通過I/O空間映射或Memory空間映射將PCI總線訪問直接映射到局部總線訪問,局部總線支持8位、16位或32位總線模式[2]。設計中PCI總線和局部總線端均采用Little Endian模式。

        SJA1000是獨立的CAN總線控制器,位速率可達1 Mb/s,兼容CAN2.0B協(xié)議[3]。PCA82C251是用于CAN總線與總線控制器SJA1000之間的物理接口驅動芯片,最高傳輸速率為1 Mb/s,抗干擾能力強,具有芯片熱保護能力。

        傳統(tǒng)設計方案會在PCI9052與SJA1000之間加一級控制芯片和雙口RAM,以方便進行協(xié)議解析和數(shù)據(jù)緩存,但同時會增加總線數(shù)據(jù)協(xié)議轉換的處理延時。本方案考慮到降低成本和轉換延時的要求,以及考慮到實際使用中遙控終端與通信控制平臺間的控制命令、數(shù)據(jù)交互并不頻繁,協(xié)議中的單幀數(shù)據(jù)指令不長,不會因頻繁的中斷和數(shù)據(jù)讀寫影響嵌入式處理器的實時性能,因此設計中直接使用PCI9052的局部總線以數(shù)據(jù)地址復用方式訪問SJA1000,原理框圖如圖1所示。

        圖1 硬件原理框圖Fig.1 Schematic diagram of hardware

        2.2 CAN總線接口電路設計

        如圖2所示,CAN接口電路由PCA82C251總線驅動器實現(xiàn)總線控制器SJA1000與CAN總線間的物理接口,R37為斜率電阻,需根據(jù)實際的總線傳輸速率進行調整,取值范圍一般在10 Ψ~100 kΨ之間。

        圖2 CAN接口電路原理圖Fig.2 The CAN interface circuit

        SJA1000與PCI9052之間采用局部總線的地址數(shù)據(jù)復用方式連接,PCI9052需通過MODE管腳的上拉配置為復用方式。在軟件的驅動配置過程中需對PCI9052的相關寄存器進行配置,將其局部總線位寬設置為8 b,同時配置CS0片選空間的基地址和范圍,本例為24000h和4000h,其余寄存器保持上電默認值的狀態(tài)下即可通過PCI9042的Memory空間將PCI總線地址的訪問直接映射到局部總線CS0片選空間的地址訪問。

        LINT為中斷信號,設計中配置為邊沿觸發(fā),當SJA1000接收到CAN總線上的有效數(shù)據(jù)后拉低該信號線,由PCI9052轉換成PCI中斷通知嵌入式處理器來讀數(shù)據(jù),縮短處理器的響應時間。LCLK為局部總線的時鐘輸入信號,為保證PCI9052與SJA1000之間讀寫數(shù)據(jù)的有效性,保持地址數(shù)據(jù)建立和保持時間的一致性,設計上將LCLK與SJA1000的時鐘輸入接到同源時鐘上。

        SJA1000的復位輸入信號由PCI9052的LRESET#輸出管腳產(chǎn)生,滿足復位時間要求,同時可以保證兩者上電后初始化配置順序的合理性。SJA1000可通過MODE管腳選擇工作于Intel或Motorola模式,本例設計為上拉,即采用Intel模式。

        調試過程中,應重點關注CS0片選信號有效時,對應的地址/數(shù)據(jù)是否正確,其與讀寫信號、時鐘信號間的時序關系是否正確以及ALE鎖存是否工作正常。在對SJA1000進行初始化配置時建議將時鐘分頻配置為1/4以區(qū)別于默認的1/2時鐘分頻設置,這樣可以通過CLKOUT管腳的時鐘輸出頻率值判斷是否初始化配置成功。

        2.3 PCI總線接口電路設計

        如圖3所示,PCI接口部分的電路主要由PCI9052和NM93CS46組成,NM93CS46為支持連續(xù)數(shù)據(jù)讀寫的EEPROM,存儲空間為1 kb,EEPROM用于存儲PCI配置寄存器的初始化配置數(shù)據(jù),在上電后PCI端口自動讀取EEPROM中的數(shù)據(jù)執(zhí)行初始化操作。需要注意的是PCI9052僅支持1 kb的可連續(xù)數(shù)據(jù)讀寫的EEPROM,常用型號如93C46、93C56的芯片不能支持。

        PCI9052的EEDO管腳用于選擇是否從EEPROM讀取值來進行自動初始化,當該管腳配置為下拉時,可選擇使用PCI9052的默認值來進行自動初始化。TEST管腳在芯片正常工作時一定要下拉或直接接地。建議設計中將PCI總線側的控制和地址/數(shù)據(jù)信號線串接33 Ψ的吸收匹配電阻,降低信號線阻抗失配引起的信號反射,提高信號完整性。硬件PCB設計過程中需要注意PCI總線側信號線的長度差要控制在一定的范圍,通常不超過100 mil。

        圖3 PCI接口電路原理圖Fig.3 The PCI interface circuit

        3 軟件設計

        3.1 驅動程序設計

        通信控制平臺的嵌入式處理器運行的操作系統(tǒng)是VxWorks,需要開發(fā)基于VxWorks的驅動程序對PCI橋芯片PCI9052和CAN總線控制器SJA1000進行初始化配置。

        標準PCI設備要求具有3種地址空間:配置空間、Memory空間和I/O空間[4]。上電后,驅動程序掃描PCI總線,并通過設備的配置空間確定PCI總線上的PCI設備和配置要求,以進行系統(tǒng)初始化配置。配置空間可分為頭標區(qū)和設備有關區(qū)兩部分,頭標區(qū)的長度為64 B,結構內(nèi)容如圖4所示。

        圖4 PCI總線配置空間頭標區(qū)寄存器Fig.4 Registers in PCI bus configuration space

        PCI設備驅動程序的基本流程是查找PCI設備、確定廠商ID、設備ID、基地址等配置信息,初始化PCI設備、設置中斷服務函數(shù)的入口地址及啟動功能模塊。具體程序流程圖如圖5所示。

        圖5 PCI設備驅動程序流程圖Fig.5 The PCI device driver program process

        驅動程序啟動后首先啟動GetCpciDevice查找PCI設備、確定廠商ID、設備ID、基地址等配置信息,然后進行軟硬件端口號的映射。

        通過上述操作后,可以通過對Memory空間地址的訪問實現(xiàn)對PCI9052配置寄存器的訪問。程序中的sysPciConfigRead函數(shù)為VxWorks提供的標準PCI驅動庫函數(shù)。程序找到PCI設備后,執(zhí)行OpenCpciDev函數(shù)對PCI設備進行初始化以及中斷配置、開中斷等。

        通過上述程序,完成了PCI地址到局部總線地址的映射,隨后可以通過對起始地址為90124000h(其中90100000h為I/O空間基地址),大小為4000h的地址范圍的訪問實現(xiàn)對SJA1000的內(nèi)存訪問。

        程序中的中斷掛接函數(shù)主要完成掛接中斷,將中斷向量和中斷服務程序相關聯(lián)。VxWorks為用戶提供了PCI中斷掛接函數(shù)pciIntConnect,該掛接函數(shù)將PCI中斷服務程序InterruptFunc-CAN加入到中斷服務鏈表中。同時,程序調用了標準PCI驅動庫函數(shù)中的pciIntDisable和pciIntEnable來開關PCI中斷,調用sysOutLong執(zhí)行PCI空間的數(shù)據(jù)讀寫操作。

        3.2 SJA1000初始化程序設計

        CAN總線控制器SJA1000的初始化是CAN接口電路驅動程序設計的重要部分,成功的初始化配置是保證CAN總線數(shù)據(jù)正確接收和發(fā)送的基礎。程序初始化過程中要設置的芯片工作參數(shù)主要有:選擇SJA1000的工作模式,設定總線通信波特率,設置驗收碼寄存器和驗收屏蔽寄存器等。程序初始化流程圖如圖6所示。

        圖6 SJA1000初始化流程圖Fig.6 SJA1000 initial program process

        設計中CAN總線控制器SJA1000的輸入時鐘為12 MHz,CLKOUT管腳上電后默認輸出為輸入時鐘的1/2,即6 MHz,當執(zhí)行上述代碼完成對芯片初始化配置后,CLKOUT輸入變?yōu)? MHz,表明初始化成功。其后即可通過讀寫SJA1000的接收和發(fā)送寄存器完成CAN總線數(shù)據(jù)的收發(fā)操作。

        4 應用情況

        研究成果已成功應用于某短波通信產(chǎn)品的通信控制平臺中,并隨系統(tǒng)產(chǎn)品通過了常溫功能和性能測試、環(huán)境試驗、用戶試用以及定型評審。各項測試結果表明,本方案的設計成果可實現(xiàn)PCI和CAN總線間的數(shù)據(jù)交換,功能正常。性能測試方面,從CAN總線接收到遙控數(shù)據(jù)命令開始,到完成數(shù)據(jù)協(xié)議轉換并以中斷方式通知嵌入式處理器讀取為止,所計平均延時時間為0.3 μ s,最大延時不超過0.5 μ s,優(yōu)于傳統(tǒng)方案,且生產(chǎn)成本降低了30%。本方案設計簡單、成本低、延時小,滿足高速、實時處理的要求,且具有很好的兼容性和通用性,可移植應用于各種有類似功能需求的產(chǎn)品中。

        5 結束語

        本文針對低成本、低時延和實時處理的設計需求,設計了低成本的PCI-CAN總線交換硬件實現(xiàn)方案和驅動程序,對比傳統(tǒng)實現(xiàn)方案,在數(shù)據(jù)時延和實時處理的性能方面有較大的提升,且實現(xiàn)簡單、成本更低,更有利于實際產(chǎn)品的批量生產(chǎn)。同時,結合實際調試經(jīng)驗,指出了軟硬件設計和調試過程中的關鍵點,給出了相應的建議和指導,并對軟件源代碼進行了詳細的解讀,對工程應用中此類功能需求的設計開發(fā)具有一定的參考價值。

        [1]鄔寬民.CAN總線原理與應用系統(tǒng)設計[M].北京:北京航空航天大學出版社,2004:32-158.WU Kuan-min.Principle andApplication of CAN BusSystem Design[M].Beijing:Beijing University of Aeronautics and Astronautics Press,2004:32-158.(in Chinese)

        [2]PLX Technology Inc.PCI9052 Data Book v1.02[EB/OL].2000[2012-06-25].http://www.plxtech.com/products/io/pci9052.

        [3]岑雪松.SJA1000在CAN總線系統(tǒng)節(jié)點的應用[J].單片機與嵌入式系統(tǒng)應用,2002(3):50-54.CEN Xue-song.Application of SJA1000 inthe SystemNode of CAN Bus[J].Microcontrollers&Embedded Systems,2002(3):50-54.(in Chinese)

        [4]王宇磊,周東.VxWorks下PCI總線驅動程序設計與實現(xiàn)[J].自動化與儀表,2008(7):45-48.WANG Yu-lei,ZHOU Dong.Driver Design and Realize of PCI Bus Under VxWorks[J].Automatization and Instrument,2008(7):45-48.(in Chinese)

        猜你喜歡
        管腳驅動程序寄存器
        Lite寄存器模型的設計與實現(xiàn)
        計算機應用(2020年5期)2020-06-07 07:06:44
        分簇結構向量寄存器分配策略研究*
        基于圖像處理的異型電子元器件管腳偏移誤差檢測方法研究
        CMOS數(shù)字IC管腳電容的估算與測量
        HC08芯片JVT測試方法的探究
        電子測試(2013年22期)2013-09-26 06:03:52
        高速數(shù)模轉換器AD9779/AD9788的應用
        一種可重構線性反饋移位寄存器設計
        通信技術(2010年8期)2010-08-06 09:29:16
        驅動程序更新與推薦
        驅動程序更新與推薦
        驅動程序更新與推薦
        欧美高清国产在线播放| 欧美嫩交一区二区三区| 女人张开腿让男桶喷水高潮| 中文字幕高清在线一区二区三区| 亚洲最稳定资源在线观看| 午夜免费观看一区二区三区| 狠狠色丁香婷婷久久综合| 亚洲 欧美精品suv| 国产高清在线91福利| 亚洲天码一区二区三区| 奶头又大又白喷奶水av| 无码人妻精品一区二区三区免费 | 奇米影视777撸吧| 国产成人无码A区在线观| 成人综合激情自拍视频在线观看 | 免费看黄在线永久观看| 欧美牲交a欧美牲交| 草草久久久无码国产专区| 国产又黄又爽又无遮挡的视频| 久久精品国产亚洲av沈先生| 日韩内射美女片在线观看网站 | 国产精品视频yuojizz| 熟女乱乱熟女乱乱亚洲| 久久综合99re88久久爱| 波多野结衣乳巨码无在线| 天堂在线观看av一区二区三区| 国产另类人妖在线观看| 免费不卡在线观看av| 少妇太爽了在线观看免费视频| 无人视频在线播放在线观看免费| 亚洲色图在线免费视频| 久久国内精品自在自线图片| 欧美日韩精品一区二区三区高清视频| 91中文在线九色视频| 国产精品免费看久久久无码| 欧美极品美女| 一本大道久久精品一本大道久久 | 亚洲精品无码av人在线观看| 伊人久久综合影院首页| 亚洲美女av二区在线观看| 精品无码国产自产在线观看水浒传|