【《一種基于TMS32數(shù)字信號處理器的CAN總線通信電路設(shè)計》23000字】_第1頁
【《一種基于TMS32數(shù)字信號處理器的CAN總線通信電路設(shè)計》23000字】_第2頁
【《一種基于TMS32數(shù)字信號處理器的CAN總線通信電路設(shè)計》23000字】_第3頁
【《一種基于TMS32數(shù)字信號處理器的CAN總線通信電路設(shè)計》23000字】_第4頁
【《一種基于TMS32數(shù)字信號處理器的CAN總線通信電路設(shè)計》23000字】_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

[在此處鍵入]一種基于TMS32數(shù)字信號處理器的CAN總線通信電路設(shè)計摘要隨著網(wǎng)絡(luò)通信技術(shù)和局域網(wǎng)技術(shù)的發(fā)展,從與生活息息相關(guān)的電力系統(tǒng)、自動化控制到高精端制造業(yè)所涉及的汽車電子、自動駕駛控制都與控制器局域網(wǎng)絡(luò)有著密不可分的關(guān)系。目前通信領(lǐng)域中的以太網(wǎng)的媒體訪問方式不能保證網(wǎng)絡(luò)傳輸?shù)拇_定性和實時性,不能滿足工業(yè)現(xiàn)場惡劣環(huán)境的要求。因此,本文以高算力、低功耗的DSP為處理器,在此基礎(chǔ)上提出了一種基于TMS320F28335的CAN總線通訊電路,以實現(xiàn)主機(jī)與多從機(jī)之間的高可靠性、實時性的網(wǎng)絡(luò)通信功能。系統(tǒng)以型號為TMS320F28335的數(shù)字信號處理器為核心,實現(xiàn)了基于CAN2.0協(xié)議的與上位機(jī)進(jìn)行差分串行數(shù)據(jù)交換。本文給予該背景出發(fā),介紹了數(shù)字信號處理器的發(fā)展與背景。各串行通信協(xié)議,重點說明了CANopen協(xié)議與ISO網(wǎng)絡(luò)結(jié)構(gòu)的關(guān)系,著重介紹了硬件電路的模塊化設(shè)計過程及PCB版圖的繪制。介紹了相關(guān)寄存器和程序的編寫并重點說明了系統(tǒng)實驗,對并對通信系統(tǒng)的通信數(shù)據(jù)格式、延時分析、故障檢測通過實驗驗證并給出了評價指標(biāo)。最終完成了電路設(shè)計和實驗驗證并給出相關(guān)參數(shù)結(jié)論。關(guān)鍵詞:DSP;通信電路系統(tǒng);CANopen協(xié)議;CAN總線目錄第1章緒論 81.1課題研究的背景及其意義 81.2DSP概述 81.2.1本課題使用DSP簡介 81.2.2DSP的CAN接口 91.3論文的主要工作和結(jié)構(gòu) 9第2章通信方式和協(xié)議 102.1通信協(xié)議基礎(chǔ) 102.1.1數(shù)字信號基礎(chǔ) 112.1.2SPI通信協(xié)議 112.1.3SCI通信協(xié)議 122.1.4I2C通信協(xié)議 122.2CAN通信協(xié)議與其他典型協(xié)議比較 132.3網(wǎng)絡(luò)通信協(xié)議 142.3.1應(yīng)用層CANopen協(xié)議 142.3.2數(shù)據(jù)鏈路層協(xié)議 152.3.3CAN協(xié)議對數(shù)據(jù)的收發(fā)處理 172.4本章小結(jié) 19第3章硬件電路設(shè)計 203.1電源模塊 203.2數(shù)字信號處理器模塊 213.2.1時鐘模塊 213.3.2JTAG接口模塊 243.2.3濾波電路模塊 263.3CAN協(xié)議收發(fā)模塊 283.4PCB版圖的設(shè)計 293.5本章小結(jié) 30第4章系統(tǒng)程序設(shè)計 314.1總體設(shè)計方案 314.2DSP中的eCAN寄存器 314.3eCAN模塊的初始化 344.3.1CAN位定時配置 344.3.2傳輸波特率的配置 354.4配置eCAN模塊 374.5遠(yuǎn)程框架郵箱的處理 374.5.1消息對象 394.5.2傳輸郵箱和接收郵箱 394.6中斷的配置 404.7控制器局域網(wǎng)的掉電模式 41第5章系統(tǒng)調(diào)試和實驗驗證 415.1集成編譯環(huán)境CCS簡介 415.2示波器簡介 425.3CAN卡的調(diào)試實驗 425.3系統(tǒng)連接整機(jī)實驗 435.3.1CAN協(xié)議傳輸波形讀取測試 465.3.2數(shù)據(jù)傳輸延時性能測試 475.3.3線路故障檢測測試 485.4本章小結(jié) 49第1章緒論1.1課題研究的背景及其意義隨著物聯(lián)網(wǎng)技術(shù)和通信技術(shù)的發(fā)展,衍生出了很多新型工業(yè)領(lǐng)域,如汽車駕駛行業(yè)、智能家居行業(yè)、安保識別行業(yè)、高端醫(yī)務(wù)行業(yè)、大數(shù)據(jù)運輸行業(yè)等工業(yè)控制領(lǐng)域。這都需要對各種不同的信息數(shù)據(jù)進(jìn)行采集、處理、控制、輸出等操作,一種穩(wěn)定、高速、低延遲的現(xiàn)場總線進(jìn)行數(shù)據(jù)傳輸。其中DSP(DigitalSignalProcessor)作為一種微處理器其浮點運算能力強(qiáng),速度快且成本逐年趨于穩(wěn)定,因此其越來越多的被應(yīng)用于工業(yè)控制領(lǐng)域。1.2DSP概述DSP全稱為DigitalSignalProcessor(數(shù)字信號處理器),其與網(wǎng)絡(luò)理論、信號與系統(tǒng)、控制論、通信理論、故障診斷密切相關(guān),在人工智能、模式識別、神經(jīng)網(wǎng)絡(luò)、最優(yōu)控制、迷糊控制等方面大放異彩。標(biāo)準(zhǔn)的DSP通常集成了存儲器(如SRAM,F(xiàn)LASH)、定時器、脈寬調(diào)制PWM模塊、脈沖捕捉CAP模塊、正交編碼QEP模塊、ADC模塊、直接存儲訪問(DMA)模塊、各個串行接口(如SCI、SPI、CAN、I2C)模塊。相比于MCU(微處理器),DSP有較高的處理速度和較高的片上資源集成度,因此更快、更高效、集成度更高的信號處理器成了日益迫切的需求。DSP的特點如下:(1)高速的處理機(jī)制:擁有專門的硬件乘法器,相比于依靠時鐘移位的軟件乘法器,提高了運算速度。在指令方面,其擁有特殊的DSP指令,采用低功耗的CMOS技術(shù),也因此擁有快速的指令周期,第三代DSP采用4級流水線,可并行處理最多6條指令。(2)較為先進(jìn)的架構(gòu):采用改進(jìn)的哈佛結(jié)構(gòu),相比于馮諾依曼結(jié)構(gòu),獨立編址獨立訪問,數(shù)據(jù)吞吐率高。浮點DSP的字長32位(3)多機(jī)并行的特性:支持?jǐn)帱c,程序存儲器,數(shù)據(jù)存儲器和DMA的訪問。(4)內(nèi)核可編程:DSP核是DSP器件的CPU部分,再配以存儲器和外設(shè),組成用戶的ASIC(ApplicationSpecificIntegratedCircuit),除了硬件和仿真器的Debug調(diào)試之外,各廠家陸續(xù)推出針對DSP的操作系統(tǒng)(例如CodeComposerStudio),擁有函數(shù)庫和軟件工作包,為DSP的開發(fā)提供了良好的集成編譯環(huán)境。1.2.1本課題使用DSP簡介TMS320F28335是TI公司生產(chǎn)的C2000系列的DSP,具有強(qiáng)大的控制和信號處理能力,能夠?qū)崿F(xiàn)復(fù)雜的算法,能更高效的執(zhí)行浮點運算。其具體性能指標(biāo)如下:(1)32位浮點DSP,主頻是150MHz,方便電機(jī)控制、電力設(shè)備控制及工業(yè)控制等。(2)片上存儲器:FLASH:256K×16位;SRAM:34K×16位;BOOTROM:8K×16位;OPTROM:2K×16位。其中FLASH、OPTROM受口令保護(hù),可以保護(hù)用戶程序。(3)豐富的片上外設(shè):內(nèi)部時鐘、脈寬調(diào)制PWM模塊、脈沖捕捉CAP模塊、正交編碼QEP模塊、ADC模塊、SCI通道、MCBPS通道、CAN通道、SPI通道、I2C通道、外部存儲器擴(kuò)展XINTF接口、看門狗電路。1.2.2DSP的CAN接口TI公司的TMS320F28335型號DSP集成了增強(qiáng)型CAN總線通信接口,該接口與CAN2.0B標(biāo)準(zhǔn)接口完全兼容。CAN總線是一種串行通信協(xié)議,具有較強(qiáng)的抗干擾能力,可以應(yīng)用在電磁噪聲比較大的場合。帶有32個完全可配置郵箱和定時郵遞(Time-Stamping)功能的增強(qiáng)型CAN總線模塊,能夠?qū)崿F(xiàn)靈活穩(wěn)定的串行通信接口。提供兩個CAN總線接口eCAN-A和eCAN-B,此外還增加了從eCAN-A端口啟動的操作模式。1.3論文的主要工作和結(jié)構(gòu)本課題設(shè)計一種基于TMS320F28335的CAN總線通信電路。首先先查找各個相關(guān)電路模塊,設(shè)計出了各個模塊的原理圖,并經(jīng)過多次改版得到了PCB版圖。焊接硬件并檢測電路能正常工作后,基于CCS集成編譯環(huán)境用C語言編寫程序。了解到TMS320F28335每個管腳都最多對應(yīng)四種不同狀態(tài),查閱手冊,配置17和19管腳為CAN引腳。通過編寫主函數(shù)使芯片以CAN2.0協(xié)議發(fā)出標(biāo)準(zhǔn)幀,該系統(tǒng)串聯(lián)CAN卡與上位機(jī)進(jìn)行通信。經(jīng)CAN卡轉(zhuǎn)換為USB2.0協(xié)議,方便上位機(jī)進(jìn)行調(diào)試和檢測。通過CAN卡調(diào)試工具得到收發(fā)的字符串、延時檢測、波特率檢測。最后進(jìn)行了實驗部分,發(fā)送的幀可被示波器檢測并解讀,劃分出了各個標(biāo)志位。對CAN總線傳輸延時進(jìn)行了測量,最后對該系統(tǒng)的錯誤檢測能力進(jìn)行了測試。工作部分可大致分為以下9個步驟。第一階段:各個模塊的具體芯片選型和基本設(shè)計思路。利用AltiumDesinger18軟件,進(jìn)行原理總圖和各個模塊原理圖繪制工作,得到了四層板結(jié)構(gòu)的PCB最終成品圖。第二階段:對元器件進(jìn)行焊接,列出不同封裝的元件清單,進(jìn)行焊接檢查后上電測試。第三階段:學(xué)習(xí)CCS集成編譯環(huán)境,實現(xiàn)軟件層和硬件層的連接,并編寫程序完成字符串的發(fā)送第四階段:進(jìn)行系統(tǒng)調(diào)試實驗,完成性能指標(biāo)的測試。本論文有六個章節(jié),安排如下:第一章介紹了數(shù)字信號處理器的發(fā)展與背景。第二章各串行通信協(xié)議,重點說明了CANopen協(xié)議與ISO網(wǎng)絡(luò)結(jié)構(gòu)的關(guān)系。第三章著重介紹了硬件電路的模塊化設(shè)計過程及PCB版圖的繪制。第四章介紹了DSP上的CAN模塊相關(guān)的寄存器和程序的編寫工作。第五章重點說明了系統(tǒng)實驗,對并對通信系統(tǒng)的通信數(shù)據(jù)格式、延時分析、故障檢測通過實驗驗證并給出了評價指標(biāo)。結(jié)論:對本系統(tǒng)方案和實驗部分的反思改進(jìn)與總結(jié)。

第2章通信方式和協(xié)議2.1通信協(xié)議基礎(chǔ)最基本的通信系統(tǒng)單元如圖2-1所示。圖2-1最基本的通信系統(tǒng)單元數(shù)字信號通信方式是指通信的雙方(或多方)之間的工作方式。常見的工作方式如表2-1所列表2-1通信方式的分類按傳輸?shù)牡姆较蚺c時間關(guān)系分類按數(shù)字碼元傳輸?shù)臅r序分類按系統(tǒng)結(jié)構(gòu)分類單工通信并行傳輸點到點通信(專線通信)半雙工通信串行傳輸點到多點通信全雙工通信——多點之間的通信單工指單方向傳輸信息的工作方式,例如廣播、遙控、無線尋呼等;半雙工通信指通信雙方都能收發(fā)信息,但不能同時進(jìn)行收和發(fā)的工作方式,例如普通對講機(jī)、問詢等;全雙工通信:全雙工通信是指在通信過程中,發(fā)送數(shù)據(jù)的同時也能夠接收數(shù)據(jù)的通信方式,又稱為雙向同時通信。并行傳輸和串行傳輸主要區(qū)別在于一個時鐘信號傳輸?shù)淖址麛?shù),通信結(jié)構(gòu)時序分類如圖2.2所示。(a)并行通信(b)串行通信圖2.2數(shù)字碼原傳輸?shù)臅r序分類2.1.1數(shù)字信號基礎(chǔ)與模擬通信相比,數(shù)字通信的優(yōu)點如下:抗干擾能力強(qiáng),且無噪聲積累、傳輸差錯可控、便于進(jìn)行信號處理,變換和儲存,可以將不同信道的信源一起傳輸、便于集成,使設(shè)備小型化、易于加密處理,且保密性好。而隨著集成電路的發(fā)展和寬帶傳輸介質(zhì)的使用,對同步要求極高的缺點和占用較大帶寬的缺點已經(jīng)被極大的弱化或克服。利用數(shù)字信號來傳遞信息的通信的通信系統(tǒng)稱為數(shù)字通信系統(tǒng),如圖2.3所示。圖2.3數(shù)字通信系統(tǒng)模型信源和信宿可以是模擬的,也可以是數(shù)字的。信源編碼有兩個基本功能。一是模/數(shù)轉(zhuǎn)換,即把模擬信號轉(zhuǎn)換成數(shù)字信號;二是將數(shù)字信號進(jìn)行壓縮,減少冗余,提高信息傳輸?shù)挠行?。信源編碼和信源譯碼是逆向過程。調(diào)制的目的是使信號適應(yīng)信道的特性。2.1.2SPI通信協(xié)議SPI即SerialPeripheralInterface是高速同步串行輸人/輸出端口,SPI最早是由Freescale(原屬Motorola)公司在其MC68HCxx系列處理器上定義的一種高速同步串行接口。SPI目前被廣泛用于外部移位寄存器、D/A、A/D、串行EEPROM、LED顯示驅(qū)動器等外部芯片的擴(kuò)展。SPI是同步串行接口。SPI總線包括1根串行同步時鐘信號線(SCI不需要)以及2根數(shù)據(jù)線,實際總線接口一般使用4根線,即SPI四線制:串行時鐘線、主機(jī)輸人/從機(jī)輸出數(shù)據(jù)線、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線和低電平有效的從機(jī)片選線。有的SPI接口帶有中斷信號線,也有SPI接口沒有主機(jī)輸出/從機(jī)輸人線。在F28335中使用的是上文介紹的SPI四線制。SPI接口的通信原理簡單,以主從方式進(jìn)行工作。在這種模式中,必須要有一個主設(shè)備,可以有多個從設(shè)備。通過片選信號來控制通信從機(jī),SPI時鐘引腳提供串行通信同步時鐘,數(shù)據(jù)從從人主出引腳輸出,從出主入引腳輸人。通過波特率寄存器設(shè)置數(shù)據(jù)速率。SPI向輸人數(shù)據(jù)寄存器或發(fā)送緩沖器寫人數(shù)據(jù)時就啟動了從入主出引腳上的數(shù)據(jù)發(fā)送,先發(fā)送最高位。同時,接收數(shù)據(jù)通過從出主入引腳移人數(shù)據(jù)寄存器最低位。選定數(shù)量位發(fā)送結(jié)束,則整個數(shù)據(jù)發(fā)送完畢。收到的數(shù)據(jù)傳送到SPI接收寄存器﹐右對齊供CPU讀取。SPI數(shù)據(jù)通信格式如圖2.4所示。圖2.4SPI數(shù)據(jù)通信格式2.1.3SCI通信協(xié)議SCI即SerialCommunicationInterface,串行通信接口,接收和發(fā)送有各自獨立的信號線,但不是同一個時鐘,所以是進(jìn)行串行異步通信接口,一般可以看作是uart(通用異步接收/發(fā)送裝置),經(jīng)常會跟RS232接口連接。通常DSP引腳輸入/輸出使用TTL電平,而TTL電平的“1”和“0”的特征電壓分別為2.4V和0.4V,適用于板內(nèi)數(shù)據(jù)傳輸。TTL電平與RS232電平之間要互相轉(zhuǎn)換,這就需要采用串口轉(zhuǎn)換芯片,常用的是MAX232。為了使信號傳輸?shù)酶h(yuǎn),美國電子工業(yè)協(xié)會EIA(ElectronicIndustryAssociation)制訂了串行物理接口標(biāo)準(zhǔn)RS-232C。典型的SCI數(shù)據(jù)格式如圖2.5所示。圖2.5典型的SCI數(shù)據(jù)幀格式2.1.4I2C通信協(xié)議I2C(Inter-IntegratedCircuit)是一種串行通信總線,使用多主從架構(gòu),由飛利浦公司在1980年為了讓主板、嵌入式系統(tǒng)或手機(jī)用以連接低速周邊裝置開發(fā)的。IC的正確讀法為“I-squared-C",國內(nèi)多以“I2C”稱之。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。目前常見的應(yīng)用諸如為了保存使用者的設(shè)定而存取NVRAM芯片、存取低速的數(shù)模轉(zhuǎn)換數(shù)據(jù)(DAC)、存取低速的模數(shù)轉(zhuǎn)換數(shù)據(jù)(ADC)、改變監(jiān)視器的對比度、色調(diào)及色彩平衡設(shè)定(視訊資料通道)、改變音量大小、取得硬件監(jiān)視及診斷資料,例如中央處理器的溫度及風(fēng)扇轉(zhuǎn)速讀取實時的時鐘、在系統(tǒng)設(shè)備中用來開啟或關(guān)閉電源供應(yīng)。如圖2.6所示為多個I2C模塊連接在總線上實現(xiàn)多個器件之間的雙路數(shù)據(jù)傳輸。圖2.6.1主機(jī)發(fā)送數(shù)據(jù)圖2.6.2主機(jī)尋址后從機(jī)讀數(shù)據(jù)每個連接到I2C總線上的器件(包括280xDSP)都有一個唯一的識別地址,根據(jù)系統(tǒng)中功能的需要,每個器件都可以實現(xiàn)發(fā)送和接收功能。當(dāng)完成數(shù)據(jù)傳輸時,連接到I2C總線上的器件都可以作為主設(shè)備或從設(shè)備。主設(shè)備初始化總線上的數(shù)據(jù)傳輸,并在數(shù)據(jù)傳輸過程中產(chǎn)生時鐘信號。在數(shù)據(jù)傳輸過程中,任何主設(shè)備尋址的地址設(shè)備都沒看做是從設(shè)備。I2C總線支持多主模式,在該操作模式下,允許多個主設(shè)備控制連接到數(shù)據(jù)同一個I2C總線上的設(shè)備。2.2CAN通信協(xié)議與其他典型協(xié)議比較而在當(dāng)今市面上的多數(shù)現(xiàn)場總線相比,其擁有相當(dāng)?shù)膬?yōu)越性,主要包括數(shù)據(jù)鏈層CAN有完整的通信協(xié)議;多主機(jī)制,總線利用率高;智能的錯誤處理機(jī)制且兼容性高。因此基于DSP的CAN協(xié)議通信有著廣闊前景,能在底端工業(yè)控制領(lǐng)域有著廣泛應(yīng)用。綜上所述,我們了解到CAN協(xié)議的突出優(yōu)點有如下三點。第一,CAN是差分通信協(xié)議,其擁有的的兼容性高,CAN總線上當(dāng)某個節(jié)點出錯,有檢測機(jī)制,會發(fā)送錯誤幀而不被接受,設(shè)置會自動擋關(guān)閉和切斷設(shè)備和總線的聯(lián)系不影響總線的發(fā)送和接收。第二,其數(shù)據(jù)鏈層CAN有完整的通信協(xié)議,這就保證各個運用CAN總線傳輸協(xié)議的子系統(tǒng)有統(tǒng)一的國際標(biāo)準(zhǔn)和調(diào)試軟件。第三,CAN多主機(jī)制,總線利用率高。最后,該系統(tǒng)集成體系結(jié)構(gòu)的其中3層,包括物理層、數(shù)據(jù)鏈路層、應(yīng)用程序特定層,也就是ISO11898規(guī)范。其與上文提到的其他協(xié)議詳細(xì)對比如表3.2所示表3.2常見協(xié)議性能比較通信協(xié)議SCISPIIICCAN信號線數(shù)量2322時序情況全雙工全雙工全雙工半雙工微控制器典型傳輸速率10Mbps10Mbps1Mbps1Mbps通常最大節(jié)點數(shù)1010127127抗干擾能力弱中弱弱協(xié)議層自校驗無無無RCR自校驗架構(gòu)與仲裁無無多主仲裁多主仲裁2.3網(wǎng)絡(luò)通信協(xié)議數(shù)字信號處理器DSP消除了應(yīng)用軟件和系統(tǒng)軟件之間的明確界限。與此同時,實現(xiàn)和設(shè)計功能相對簡單的標(biāo)準(zhǔn)協(xié)議可以更好地控制通信成本[5]。于是將標(biāo)準(zhǔn)CAN協(xié)議的DSP、網(wǎng)絡(luò)通信相結(jié)合能夠簡化工作量,提高系統(tǒng)設(shè)備的開發(fā)效率,降低開發(fā)難度同時具有相對較高的兼容性。根據(jù)標(biāo)準(zhǔn)的ISO結(jié)構(gòu)規(guī)劃,網(wǎng)絡(luò)結(jié)構(gòu)被分為七層,而標(biāo)準(zhǔn)的CAN協(xié)議控制局域網(wǎng)保留其中的三層,即應(yīng)用層、數(shù)據(jù)鏈層、物理層,其主要功能是保證數(shù)據(jù)的快速傳輸[6]。其中應(yīng)用層又被劃分為具體的功能電路和控制器;數(shù)據(jù)鏈路層包括受應(yīng)用層相互作用的CAN控制器,其主要包括接收報文的選擇、過載通知、錯誤恢復(fù)功能的邏輯路子層(LLC),數(shù)據(jù)的打包/拆包、幀編碼、錯誤檢測及通知、串并行轉(zhuǎn)換的媒介訪問控制子層(MAC),位編碼解碼、位定時及同步的物理信號子層(PLS);物理層主要包括驅(qū)動器和收發(fā)器(PMA)、介質(zhì)相關(guān)接口(MDI)。其具體結(jié)構(gòu)體系如下圖2.7所示。圖2.7OSI和CAN協(xié)議分層模型2.3.1應(yīng)用層CANopen協(xié)議Bosch公司領(lǐng)導(dǎo)的CAN-BUS協(xié)會開始研究CAN-BUS通訊、系統(tǒng)、管理方面的細(xì)則,以后逐步完善,由此發(fā)展成為CANopen協(xié)議,它是CAL(CANApplicationLayer)協(xié)議基礎(chǔ)上開發(fā)的,使用了CAL通信和服務(wù)協(xié)議子集,它在保證網(wǎng)絡(luò)節(jié)點互用性的同時允許節(jié)點的功能隨意擴(kuò)展,定義了基于CAN的分布式工業(yè)自動化系統(tǒng)的應(yīng)用標(biāo)準(zhǔn)以及CAN應(yīng)用層通信標(biāo)準(zhǔn)。CANopen協(xié)議是一個開放性的協(xié)議,對于開發(fā)者來說它是完全免費的。CANopen在發(fā)布后不久就獲得了廣泛的承認(rèn),后來,有CiA(CANinAutomation)協(xié)會管理、維護(hù)、和發(fā)展。CANopen協(xié)議已經(jīng)成為標(biāo)準(zhǔn)的嵌入式網(wǎng)絡(luò)標(biāo)準(zhǔn)。CANopen通信模型定義4種報文:(1)管理報文主要網(wǎng)絡(luò)管理和ID分配服務(wù),如初始化,配置和網(wǎng)絡(luò)管理(包括:節(jié)點保護(hù))。(2)服務(wù)數(shù)據(jù)對象(ServiceDataObject,SDO)通過使用索引和子索引在CAN報文的前幾個字節(jié)),SDO使客戶機(jī)能夠訪問設(shè)備(服務(wù)器)對象字典中的項(對象)。SDO通過CAL中多元域的CMS對象實現(xiàn),允許傳送任何長度的數(shù)據(jù)(當(dāng)數(shù)據(jù)超過4個字節(jié)時分拆成幾個報文)。(3)過程數(shù)據(jù)對象(ProcessDataObject,PDO)用來傳輸實時數(shù)據(jù),數(shù)據(jù)從一個生產(chǎn)者傳到一個或多個消費者。數(shù)據(jù)傳送限制在1~8個字節(jié)。(4)預(yù)定義和特殊功能對象包括同步(SYNC)、時間標(biāo)記對象(TimeStamp)、緊急事件(Emergency)、節(jié)點/壽命保護(hù)(Node/Lifeguarding)、Boot-UP過程對象。1.2.3通信機(jī)理CANopen的核心概念是設(shè)備對象字典(ObjectDictionary,OD),它是一個有序的對象組;每個對象采用一個16位的索引值來尋址,為了允許訪問數(shù)據(jù)結(jié)構(gòu)中的單個元素,同時定義了一個8位的子索引,CANopen網(wǎng)絡(luò)中每個節(jié)點都有一個對象字典。對象字典包含了描述這個設(shè)備和它的網(wǎng)絡(luò)行為的所有參數(shù)。一個節(jié)點的對象字典是在電子數(shù)據(jù)文檔(ElectronicDataSheet,EDS)中描述或者記錄在紙上。CANopen由一系列稱為子協(xié)議構(gòu)成。通信機(jī)理的核心如圖2.8所示。圖2.8CANopen協(xié)議的組成2.3.2數(shù)據(jù)鏈路層協(xié)議數(shù)據(jù)鏈路層決定了CANopen協(xié)議的標(biāo)準(zhǔn)幀有五種類型,分別為數(shù)據(jù)幀、遠(yuǎn)程幀、錯誤幀、過載幀、幀間隔。具體用途見下表2.3所示。表2.3幀類型和其用途幀類型幀用途數(shù)據(jù)幀節(jié)點傳輸和接受數(shù)據(jù)的幀遠(yuǎn)程幀用于接受節(jié)點向具有相同ID的發(fā)送節(jié)點請求數(shù)據(jù)的幀錯誤幀當(dāng)檢測到錯誤向其他節(jié)點通過錯誤的幀過載幀接受節(jié)點通知其他節(jié)點自己還沒準(zhǔn)備好接受幀幀間隔有于將數(shù)據(jù)幀和遠(yuǎn)程幀與前面的幀分離開一、數(shù)據(jù)幀(dataframe)由7個不同的位場組成,如下圖2.9所示圖2.9數(shù)據(jù)幀的組成(1)幀起始(startofframe):數(shù)據(jù)幀開始的場。(2)仲裁場(arbitrationframe):該幀的優(yōu)先級的場。(3)控制場(controlframe):數(shù)據(jù)的字節(jié)數(shù)以及保留位的場。(4)數(shù)據(jù)場(dataframe):數(shù)據(jù)的內(nèi)容,可發(fā)送0~8字節(jié)的數(shù)據(jù),數(shù)據(jù)場的長度可以為0。(5)CRC場(CRCframe):檢查幀的傳輸錯誤的場。(6)應(yīng)答場(ACKframe):確認(rèn)正常接收的場。(7)幀結(jié)束(EndofFrame):數(shù)據(jù)幀結(jié)束的場。二、遠(yuǎn)程幀通過發(fā)送遠(yuǎn)程幀,作為數(shù)據(jù)接收器的節(jié)點可以發(fā)起各自數(shù)據(jù)源的數(shù)據(jù)傳送,即向數(shù)據(jù)發(fā)送器請求發(fā)送具有相同ID的數(shù)據(jù)幀。遠(yuǎn)程幀也有標(biāo)準(zhǔn)格式和擴(kuò)展格式,而且都由6個不同的位場組成:幀起始、仲裁場、控制場、CRC場、應(yīng)答場和幀結(jié)束,如2.10所示圖圖2.10遠(yuǎn)程幀的組成它沒有數(shù)據(jù)場,數(shù)據(jù)長度代碼的數(shù)值是不受制約的(可以標(biāo)注為容許范圍內(nèi)0~8的任何數(shù)值)。此數(shù)值是相應(yīng)于數(shù)據(jù)幀的數(shù)據(jù)長度代碼。三、錯誤幀,過載幀,間隔幀其中錯誤幀由兩個不同的場組成,硬件實現(xiàn)和軟件無關(guān)。錯誤幀、過載幀、間隔幀都由硬件實現(xiàn)。2.3.3CAN協(xié)議對數(shù)據(jù)的收發(fā)處理F28355處理器的CAN控制器為CPU提供完整的CAN協(xié)議,減少了通信時CPU的開銷。eCAN模塊結(jié)構(gòu)圖如圖2.11所示,eCAN模塊主要由CAN協(xié)議內(nèi)核(CPK)和消息控制器構(gòu)成。圖2.11CAN協(xié)議內(nèi)核結(jié)構(gòu)圖CAN協(xié)議內(nèi)核主要完成兩個功能:根據(jù)CAN協(xié)議對CAN總線上接收到的消息進(jìn)行解碼,向接收緩沖發(fā)送解碼后的消息;CAN協(xié)議內(nèi)核的另外一個功能是根據(jù)CAN協(xié)議在CAN總線上傳送消息。消息控制器對CAN協(xié)議內(nèi)核接收到的消息進(jìn)行判定,決定留給CPU使用還是丟棄,在初始化時,CPU通過應(yīng)用程序設(shè)置所有消息的標(biāo)志符。消息控制器還根據(jù)消息的極性將下一個消息發(fā)送到CAN協(xié)議內(nèi)核(CPK)。此外,CAN2.0B總線規(guī)范定義了兩種不同的數(shù)據(jù)格式,其主要區(qū)別在于標(biāo)志符的長度不同:標(biāo)準(zhǔn)幀有11位的標(biāo)志符,擴(kuò)展幀有29位的標(biāo)志符.CAN總線的標(biāo)準(zhǔn)數(shù)據(jù)幀的長度是44~108位,而擴(kuò)展數(shù)據(jù)幀的長度是64~128位。根據(jù)數(shù)據(jù)流代碼的不同,標(biāo)準(zhǔn)數(shù)據(jù)幀可以插入23位填充位,擴(kuò)展數(shù)據(jù)幀可以插入28位填充位。因此,標(biāo)準(zhǔn)數(shù)據(jù)幀最長為131位,擴(kuò)展數(shù)據(jù)幀最長為156位。圖2.12給出了構(gòu)成標(biāo)準(zhǔn)擴(kuò)展數(shù)據(jù)幀各位圖2.12標(biāo)準(zhǔn)/擴(kuò)展數(shù)據(jù)幀一、支持兼容的CAN2.0B總線協(xié)議。二、最高支持1Mb/s的總線通信速率。三、32個郵箱,每個郵箱有以下特點:四、接收郵箱或發(fā)送郵箱可配置:(1)標(biāo)準(zhǔn)或擴(kuò)展標(biāo)志可配置:(2)一個可編程接收濾波器屏蔽寄存器:(3)支持?jǐn)?shù)據(jù)幀和遠(yuǎn)程幀:(4)數(shù)據(jù)長度0~8字節(jié)可編程:(5)在接收和發(fā)送消息時,使用32位分時郵遞;(6)保護(hù)消息的接收;(7)發(fā)送消息的極性可編程;(8)采用兩個中斷級的可編程中斷;(9)在發(fā)送或者接收超時時,使用可編程中斷。五、低功耗模式。六、可編程總線喚醒功能。七、自動應(yīng)答遠(yuǎn)程請求消息。八、在仲裁或錯誤丟失消息時,自動重發(fā)。九、可以通過特定的消息與32位定時郵遞計數(shù)器同步。十、自測試模式:在自測試模式下,提供“空閑”的應(yīng)答信號,因此不需要其他節(jié)點提供應(yīng)答信號,方便系統(tǒng)調(diào)試。eCAN總線模塊與TI公司的240x系列DSP上的CAN總線模塊相比,有一些改進(jìn),例如郵箱帶有獨立接收屏蔽及分時郵遞功能,郵箱數(shù)量也有所增加等。鑒于這些差別,240x系列DSP的CAN總線模塊的代碼不能直接應(yīng)用到eCAN總線上。其具體功能框圖如圖2.13所示。圖2.13eCAN總線模塊功能框圖2.4本章小結(jié)本章重點介紹了與本課題相關(guān)的通信方式和協(xié)議,其中最開始重點介紹了相關(guān)串行通信協(xié)議對數(shù)據(jù)的收發(fā)處理首先根據(jù)不同的分類原則。介紹了按傳輸?shù)牡姆较蚺c時間關(guān)系分為單工、雙工、全雙工。按數(shù)字碼元傳輸?shù)南到y(tǒng)結(jié)構(gòu)分類,分為串行傳輸和并行傳輸。接著,圍繞本課題所涉及的通信模式,依次介紹了SCI通信協(xié)議、SPI通信協(xié)議、I2C通信協(xié)議以及網(wǎng)絡(luò)通信協(xié)議,并選取相關(guān)通信協(xié)議的典型與CAN協(xié)議做比較。參照ISO規(guī)范詳細(xì)介紹了CAN協(xié)議局域網(wǎng)模型,詳細(xì)解釋了應(yīng)用層CANopen協(xié)議和數(shù)據(jù)鏈層幀的格式。最后,詳細(xì)介紹了TI公司的TMS320F28335的通信標(biāo)準(zhǔn)幀格式和對數(shù)據(jù)收發(fā)的處理過程。

第3章硬件電路設(shè)計在確定使用AltiumDesigner18軟件進(jìn)行電路設(shè)計之后,我先通過閱讀書籍和查找網(wǎng)絡(luò)論壇資料的方式學(xué)習(xí)了軟件的使用。然后根據(jù)之前選型的芯片確定了各個部分的模塊原理及芯片構(gòu)成。在綜合考慮電路的穩(wěn)定性和成本因素后,已經(jīng)完成了各個模塊的基本芯片選型,具體選型信息和設(shè)計思路如下:一、最終電源模塊基于LDO(lowdropoutregulator),是一種低壓差線性穩(wěn)壓器,具體型號是基于線性穩(wěn)壓器TPS767D325PWP和三端集成穩(wěn)壓器LM1084的芯片的電源模塊;二、確定了基于TMS320F28335的最小系統(tǒng)版并通過在X1和X2之間接晶振的方式,啟用DSP的150Mhz的內(nèi)部時鐘;三、為濾波電路加上了起指示作用的發(fā)光二極管;四、用于仿真調(diào)試的JTAG模塊;五、基于SN65HVD232的CAN協(xié)議模塊,這是一種差分通信傳輸協(xié)議,并通過穩(wěn)壓管穩(wěn)定其高低電平;六、此外為了方便電路的拓展性還設(shè)置了基于光耦A(yù)CPL-217的EPWM模塊;3.1電源模塊其中電源模塊包括兩個三端集成穩(wěn)壓器,分別將電源適配器輸入的電壓Vin經(jīng)第一個集成穩(wěn)壓器轉(zhuǎn)換成5V,在將5V經(jīng)過第二塊集成穩(wěn)壓器轉(zhuǎn)換成3.3V。再用電源芯片TPS767D301PWP經(jīng)過3.3V電壓驅(qū)動得到1.9V電壓,這樣的設(shè)計能夠使電流穩(wěn)定,電磁干擾小,且每個芯片的熱量較小,不容易出現(xiàn)電路過載現(xiàn)象。同時將各個得到的電壓和電容并聯(lián)得到模擬電源電壓和模擬地端電壓。下圖3.1就是該電路電源模塊的設(shè)計。圖3.1電源模塊3.2數(shù)字信號處理器模塊3.2.1時鐘模塊一、鎖相環(huán)的基本原理PLL(PhaseLockedLoop):為鎖相回路或鎖相環(huán)電路,用來統(tǒng)一整合時鐘信號,使高頻器件正常工作,可以控制晶振使其相對于參考信號保持恒定相位的電路,使用比較廣泛。在數(shù)字通信系統(tǒng)中通常用來進(jìn)行信號調(diào)制、在頻率合成電路中,產(chǎn)生特定頻率的信號、數(shù)據(jù)采集電路中用來進(jìn)行信號的同步。其基本工作原理如圖3.2所示。圖3.2鎖相環(huán)電路原理圖鎖相環(huán)由鑒相器、環(huán)路濾波器和壓控振蕩器組成。鑒相器用來鑒別輸人信號Uin與輸出信號Uo之間頻率之間的相位差,并輸出帶有誤差頻率分量的Ud。Ud中的噪聲和干擾成分被低通性質(zhì)的環(huán)路濾波器濾除,形成壓控振蕩器(VCO)的控制電壓Uo。Uo作用于壓控振蕩器的結(jié)果是把它的輸出振蕩頻率f。拉向環(huán)路輸人信號頻率f,當(dāng)二者相等時,環(huán)路被鎖定,稱為入鎖。維持鎖定的直流控制電壓由鑒相器提供,因此鑒相器的兩個輸入信號間留有一定的相位差。二、DSP中的時鐘電路設(shè)計時鐘信號自然是由時鐘信號的源頭(簡稱時鐘源)產(chǎn)生,從28335內(nèi)部的電路原理圖中(如圖3.1所示)可以看到,F28335的時鐘源有兩種:①采用外部振蕩器作為時鐘源頭(簡稱外部時鐘),是在XCLKIN引腳提供一定頻率的時鐘信號,也可以通過復(fù)用的X1引腳接人,即由其他數(shù)字系統(tǒng)或外部振蕩器引人。②采用F28335內(nèi)部振蕩器作為時鐘源(簡稱內(nèi)部時鐘),在X1與X2之間連接一個晶體,就可以產(chǎn)生時鐘源。F28335的最高頻率為150MHz,內(nèi)部本身集成了振蕩器,所以一般不采用外部振蕩器方式,直接采用內(nèi)部振蕩器的方式更多一些。本課題采用內(nèi)部時鐘源進(jìn)行電路設(shè)計。圖3.3TMS320F28335的內(nèi)部時鐘原理圖F28335的最高頻率為150MHz,內(nèi)部本身集成了振蕩器,所以一般不采用外部振蕩器方式,直接采用內(nèi)部振蕩器的方式更多一些。本課題采用內(nèi)部時鐘源進(jìn)行電路設(shè)計。從圖3.3可以看到,內(nèi)部信號時鐘源與外部信號時鐘源通過異或門選擇接人后成為OSCLK即振蕩器時鐘信號,該信號受到寄存器PLLSTS(OSCOFF)位控制,該位置1,即圖中開關(guān)合上,振蕩器信號允許通過,通過后“兵分兩路”,一路直接過去,一路進(jìn)人鎖相環(huán)模塊。一般不能直接采用OSCCLK這個信號,因為該信號的頻率是由石英晶體產(chǎn)生得還不夠高,需要進(jìn)人鎖相環(huán)分頻和倍頻后使用,所以要使能鎖相環(huán),設(shè)置寄存器PLLSTS(PLLOFF)。內(nèi)部時鐘源信號接法是更常用的接法,如圖3.4所示,XCLKIN引腳置地。X1、X2引腳之間直接接人晶振。圖3.4電路擬采用的具體接入方法晶體振蕩器分為有源與無源晶振兩類,功能上沒有本質(zhì)差別。無源晶振通常是晶體,現(xiàn)在常用石英晶體作晶振;有源晶振是由一個完整的諧振電路構(gòu)成,F28335內(nèi)部集成晶振就是有源晶振的諧振電路,但沒有晶體,所以在X1與X2之間要接人一個晶體。無源晶振當(dāng)然本身不會產(chǎn)生振蕩信號,需要借助于時鐘電路才能產(chǎn)生振蕩信號,典型接法是在X1與X2之間接入30MHz晶振。F28335工作的最高主頻為150MHz,我們希望它能夠工作在最高的主頻上,內(nèi)部鎖相環(huán)倍頻最高能做到10倍倍頻。選擇30MHz晶振是因為若直接采用更高頻晶振,不僅價格會上升,而且晶振電路需要做EMI處理,需要設(shè)計特殊晶振電路,而30MHz晶振目前比較容易獲取。實際時鐘模塊如圖3.5所示。目前微處理器或者DSP集成的片上鎖相環(huán),可以通過軟件實時地配置片上外設(shè)時鐘,提高系統(tǒng)的靈活性和可靠性。此外,由于采用軟件可編程鎖相環(huán),所設(shè)計的系統(tǒng)處理器外部允許較低的工作頻率,而片內(nèi)經(jīng)過鎖相環(huán)微處理器提供較高的系統(tǒng)時鐘。這種設(shè)計可以有效地降低系統(tǒng)對外部時鐘的依賴和電磁干擾,提高系統(tǒng)啟動和運行的可靠性,降低系統(tǒng)對硬件的設(shè)計要求。30MHz的OSCCLK信號經(jīng)鎖相環(huán)倍頻后,倍頻倍數(shù)通過寄存器PLLCR進(jìn)行設(shè)置,設(shè)置為10,為300MHz的VCOCLK時鐘信號,F28335的時鐘頻率為150MHz,所以給CPU核的時候,還要進(jìn)行一次二分頻,分頻通過PLLSTS進(jìn)行設(shè)置。至此產(chǎn)生了F28335的150MHz的時鐘信號。圖3.5實際時鐘模塊設(shè)計3.3.2JTAG接口模塊JTAG(JointTestActionGroup,聯(lián)合測試行動小組)是一種國際標(biāo)準(zhǔn)測試協(xié)議,用于系統(tǒng)仿真、調(diào)試及芯片內(nèi)部測試。它通過訪問芯片內(nèi)部封裝好的測試電路TAP(TestAccessPort,測試訪問端口)來實現(xiàn)。目前大多數(shù)的芯片都支持JTAG協(xié)議,這樣通過JTAG的仿真測試可便于研發(fā)人員的開發(fā)調(diào)試。具體功能表如下表3.1所示,位置分布如圖3.6所示。表3.1十四針JTAG接口定義引腳定義引腳功能1、13VCC:連接電源輸入2、4、6、8、10、14GND:連接電源地3NTRST:系統(tǒng)復(fù)位信號5TDI:測試數(shù)據(jù)串行輸入7TMS:測試模式選擇9TCK:測試模式選擇11TDO:測試數(shù)據(jù)串行輸出12未連接NTRST:此信號可對TAP控制器進(jìn)行復(fù)位,但并非強(qiáng)制要求。通過TMS選擇特定的時序亦可實現(xiàn)TAP控制器的復(fù)位操作。TDO:此信號必不可少。TDO為數(shù)據(jù)輸出接口,所有測試芯片內(nèi)部特定寄存器的數(shù)據(jù)輸出均是通過TDO接口由TCK驅(qū)動實現(xiàn)串行輸出。TDI:此信號必不可少。TDI為數(shù)據(jù)輸入接口,所有需要輸入測試芯片內(nèi)部特定寄存器的數(shù)據(jù)均是通過TDI接口由TCK驅(qū)動實現(xiàn)串行輸入。TMS:此信號必不可少。TMS用來控制TAP控制器各個狀態(tài)之間的轉(zhuǎn)換,通過TMS控制信號可實現(xiàn)TAP控制器不同狀態(tài)之間的轉(zhuǎn)變。TCK:此信號必不可少。TCK為TAP控制器提供時鐘信號。TAP控制器的所有操作都是由TCK時鐘信號驅(qū)動。圖3.6十四針JTAG引腳注釋最終設(shè)計的JTAG接口模塊如圖3.7所示圖3.7JTAG模塊電路設(shè)計圖示3.2.3濾波電路模塊一、低通濾波電路圖3.8所示為低通電路,輸出電壓Uo與輸人電壓Ui之比圖3.8典型低通濾波電路Au回路的時間常數(shù)τ=RC,令ωf代人式(5.1.5)可得A將AuA式(5.1.8a)是Au的幅頻特性,式(5.1.8b)是Au的相頻特性。從對式(5.1.8)的分析可得,當(dāng)f?fH時,Au≈1,φ≈0°;當(dāng)f=fH時,Au≈12≈0.707,φ≈?45°;當(dāng)f?fH時,ffH?1,A圖3.9低通濾波電路的頻率響應(yīng)二、DSP中濾波電路的設(shè)計用于數(shù)字信號系統(tǒng)中,高頻噪聲主要是由于電路中的數(shù)字電路和電源部分產(chǎn)生的。當(dāng)CMOS(ComplementaryMetal-Oxide-Semiconductor,互補(bǔ)金屬氧化物半導(dǎo)體)電路推動TTL(Transistor-TransistorLogic,晶體管晶體管邏輯電路)時,會導(dǎo)致推動電流增大,產(chǎn)生一系列高頻噪聲。其主要分為以下兩種:(1)電磁輻射,就像電視的天線一樣,通過發(fā)射電磁波來干擾旁邊的電路,通常是(2)耦合噪聲,指數(shù)字電路和旁邊的電路存在一定的耦合,噪聲可以直接在電器上直在數(shù)字電路中,普遍存在高頻的噪聲,這些噪聲會導(dǎo)致波形出現(xiàn)很多的波動和毛刺,因此要廣泛采用低通濾波電路。而TTL電路的輸出電阻本身就相當(dāng)于低通電路中的電阻R,因此只需要在管腳處并接典型值為0.1μF電容即可完成濾波。最后接入兩個LED指示燈作為管腳上電成功的標(biāo)志,具體設(shè)計的濾波電路及所接網(wǎng)絡(luò)如下圖3.10。圖3.10濾波電路設(shè)計3.3CAN協(xié)議收發(fā)模塊一、收發(fā)芯片SN65HVD232簡介SN65HVD230控制器局域網(wǎng)(CAN)收發(fā)器符合ISO11898-2高速CAN物理層標(biāo)準(zhǔn)(收發(fā)器)規(guī)范。這些器件專為數(shù)據(jù)速率高達(dá)1Mbps的應(yīng)用而設(shè)計,而且包括許多保護(hù)特性來提供器件和CAN網(wǎng)絡(luò)的穩(wěn)健性。SN65HVD23x收發(fā)器設(shè)計為與德州儀器(TI)具有CAN控制器或等效協(xié)議控制器的3.3V和DSP結(jié)合使用。這些器件旨在用于根據(jù)ISO11898標(biāo)準(zhǔn)使用CAN串行通信物理層的應(yīng)用。下圖3.11是簡化后的SN65HVD232的簡化電路模型。圖3.11驅(qū)動器工作測試電路模型處于正常工作下單高低電平局域網(wǎng)總線的典型電平信息入下圖3.12所示。圖3.12驅(qū)動器輸出電壓值二、CAN協(xié)議收發(fā)電路設(shè)計同時將主控板的芯片經(jīng)3.3V模擬電壓驅(qū)動的SN65hvd232芯片經(jīng)過兩個接插口作為外設(shè)接口,用高低電平的差分電路完成信號源的輸出。同時啟用DSP內(nèi)部時鐘,對各個使能端完成了配置。具體設(shè)計如下圖3.13所示。圖3.13CAN協(xié)議收發(fā)模塊電路設(shè)計3.4PCB版圖的設(shè)計在完成了電路最小系統(tǒng)版,電源模塊和CAN通信模塊后。我進(jìn)行了PCB版圖的設(shè)計,采用四層版電路設(shè)計,其較雙層板的版圖過孔少,電路集成度高,且版圖美觀。由于自動布線功能在四層板結(jié)構(gòu)的電路中很難正常使用,所以采用了模塊化手動布線的設(shè)計方案。我進(jìn)行了多次調(diào)整修改元件仍然很難連線成版,采用??旎O(shè)計理念和電平分區(qū)原則后,電路板初稿得以繪制出。在老師指導(dǎo)下,我又先后改接線角,對信號線采用10mil,電源線采用30mil,同時進(jìn)一步優(yōu)化了電路,得到再版PCB版圖。但仍存在分區(qū)混亂的問題,同時晶振也沒有進(jìn)行包地處理,導(dǎo)致了干擾過大,此外更不能和原理圖一樣將濾波電容密排列,需要將電容分配至每個信號引腳處,這樣電容才有作用。經(jīng)多次修改PCB版圖后,我逐步完成了模塊化且走線美觀的電路圖的設(shè)計,并接收了老師的意見,進(jìn)一步調(diào)整元件距離,最后在與老師反復(fù)溝通后完成了PCB電路板的設(shè)計。PCB制作完成后,還要仔細(xì)核對各個模塊是否符合,并對電器規(guī)則進(jìn)一步檢查,以確保電路經(jīng)焊接后可正常使用。最后得到的版圖如下圖3.14所示圖3.14最終得到的PCB版圖3.5本章小結(jié)本章先是介紹了電路設(shè)計模塊所涉及到的芯片的選型,之后按照順序詳細(xì)介紹了基于三段集成穩(wěn)壓器和線性穩(wěn)壓器的電源模塊;說明了鎖相環(huán)的原理和時鐘模塊的電路設(shè)計;14針JTAG接口的管腳功能和其仿真接口設(shè)計;介紹了低通濾波的理論推導(dǎo)過程和濾波電路的設(shè)計;最后介紹了基于收發(fā)芯片SN65HVD232的通信電路設(shè)計。并在本章的最后一節(jié)給出了PCB板設(shè)計經(jīng)驗和最終的PCB版圖。本章詳細(xì)的說明了硬件電路的設(shè)計過程,使該課題的硬件系統(tǒng)搭建完畢。

第4章系統(tǒng)程序設(shè)計4.1總體設(shè)計方案eCAN是一個內(nèi)部32位架構(gòu)的控制器局域網(wǎng)控制器。eCAN模塊包括:CAN協(xié)議內(nèi)核(CPK)和消息控制器,其中消息控制器包括以下三個部分:內(nèi)存管理單元(MMU),包括CPU接口和接收控制單元(接受過濾),以及定時器管理單元、郵箱內(nèi)存能夠存儲32封郵件、控制和狀態(tài)寄存器。頭文件TI公司已經(jīng)編寫了例程,一般不需要更改,只需要調(diào)用相應(yīng)的函數(shù)對主函數(shù)進(jìn)行編寫即可。一、編寫主函數(shù)將郵箱和CAN控制寄存器進(jìn)行初始化。二、編寫主函數(shù)的中斷函數(shù),調(diào)用相應(yīng)的中斷向量。三、編寫主函數(shù)的時鐘函數(shù),啟用內(nèi)部時鐘。四、編寫主函數(shù)的功能函數(shù),分為四部初始化:(1)初始化系統(tǒng)控制(PLL、WatchDog、PIE矢量表、清除CPU中斷標(biāo)志)。(2)將0~15號發(fā)送郵箱、16~31號接受郵箱地址寫入0x9555AAA0~Ox9555AAAF。(3)最后通過CANBTC寄存器設(shè)置字節(jié)長度,波特率等信息,(4)最后設(shè)置CANMC寄存器設(shè)置發(fā)送接收消息為自檢模式。4.2DSP中的eCAN寄存器一、DSP中的CAN相關(guān)寄存器繁多,這也為其高度定制化起到了作用,包含了(1)CANMD(Mailbox-DirectionRegister,郵箱方向寄存器)該寄存器用于為發(fā)送或接收操作配置郵箱。該郵箱全部置1為接受郵箱,置0為發(fā)送郵箱。(2)CANTRS(Transmission-RequestSetRegister,傳輸請求設(shè)置寄存器)當(dāng)郵箱n準(zhǔn)備好傳輸時,中央處理器將TRS[n]位設(shè)置為1,開始傳輸。設(shè)置了TRS位的所有郵件都將依次傳輸,從具有最高郵箱號(=最高優(yōu)先級)的郵箱開始,上電后,所有位被清零。(3)CANTRR(Transmission-Request-ResetRegister,傳輸請求復(fù)位寄存器)這些位只能由CPU設(shè)置,由內(nèi)部邏輯復(fù)位。當(dāng)傳輸成功或中止時,這些位復(fù)位。如果當(dāng)前正在處理相應(yīng)的消息,當(dāng)傳輸成功(正常操作)或當(dāng)在控制器局域網(wǎng)總線上檢測到由于仲裁丟失或錯誤條件而中止傳輸時,該位將被復(fù)位。(4)CANTA(Transmission-AcknowledgeRegister,傳輸確認(rèn)寄存器)郵箱n的消息發(fā)送成功,則設(shè)置位TA[n]。CPU通過寫入1來重置CANTA中的位。如果產(chǎn)生了中斷,這也會清除中斷。寫0沒有效果。上電后,所有位都會清零。(5)CANAA(Abort-AcknowledgeRegister,中止-確認(rèn)寄存器)郵箱n中的消息傳輸被中止,位AA[n]被置位。如果啟用,會產(chǎn)生中斷。CANAA中的位通過從CPU寫入1來復(fù)位。寫0沒有效果。上電后,所有位被清零。(6)CANRMP(Received-Message-PendingRegister,接收消息待處理寄存器)如果信箱n包含一個接收的消息,該寄存器的位RMP[n]被置位。這些位只能由CPU復(fù)位,由內(nèi)部邏輯設(shè)置。如果清除了該位,新的傳入郵件將覆蓋存儲的郵件,否則將檢查下一個郵箱是否有匹配的標(biāo)識。(7)CANRML(Received-Message-LostRegister,接收消息丟失寄存器)如果郵箱n中的舊郵件被新郵件覆蓋,則設(shè)置一個RML[n]位。這些位只能由中央處理器重置,并由內(nèi)部邏輯設(shè)置。如果置1舊的未讀郵件已被該郵箱中的新郵件覆蓋。如果置0,那么沒有消息因為被覆蓋而丟失。(8)CANRFP(Remote-Frame-PendingRegister,遠(yuǎn)程幀掛起寄存器)每當(dāng)控制器局域網(wǎng)模塊接收到遠(yuǎn)程幀請求時,遠(yuǎn)程幀掛起寄存器中相應(yīng)的位RFP[n]就會被置位。如果遠(yuǎn)程幀存儲在接收郵箱中(CANMD=1),將不設(shè)置RFPn位。為了防止自動應(yīng)答郵箱回復(fù)遠(yuǎn)程幀請求,中央處理器必須通過設(shè)置相應(yīng)的傳輸請求復(fù)位。該位置1模塊接收到遠(yuǎn)程幀請求,該位置0未收到遠(yuǎn)程幀請求。寄存器由CPU清零。。(9)CANGAM(GlobalAcceptanceMaskRegister,全局接受掩碼寄存器)eCAN在SCC模式下使用全局接受掩碼。當(dāng)CANGAM.31置1則可以接收標(biāo)準(zhǔn)幀和擴(kuò)展幀。在擴(kuò)展幀的情況下,標(biāo)識符的所有29位都存儲在郵箱中,全局接受掩碼。在標(biāo)準(zhǔn)幀的情況下,僅使用標(biāo)識符的前11位(第28至18位)和全局接受掩碼。CANGAM.28:0中的接收的標(biāo)識符位值必須與MSGID寄存器的相應(yīng)標(biāo)識符位匹配。(10)CANMC(MasterControlRegister,主控制寄存器)該寄存器用于控制控制器局域網(wǎng)模塊的設(shè)置。CANMC寄存器的某些位受EALLOW保護(hù)。對于讀/寫操作,僅支持32位訪問,因此在實際編程時需用到影子寄存器。主控制寄存器的格式其中重點介紹CCR(Change-configurationrequest,變更配置請求)該位受EALLOW(Editallow,允許編輯)保護(hù),決定了中央處理器能否正常運行,在CAN模塊的初始化中會重點用到該位寄存器。(11)CANBTC(Bit-TimingConfigurationRegister,位定時配置寄存器)CANBTC寄存器用于為CAN節(jié)點配置適當(dāng)?shù)木W(wǎng)絡(luò)時序參數(shù)。在使用控制器局域網(wǎng)模塊之前,必須對該寄存器進(jìn)行編程。該寄存器在用戶模式下寫保護(hù),只能在初始化模式下寫入。該模塊是決定消息傳輸時鐘和波特率的重要模塊。(12)CANES(ErrorandStatusRegister,錯誤和狀態(tài)寄存器)控制器局域網(wǎng)模塊的狀態(tài)由錯誤和狀態(tài)寄存器(CANES)和錯誤計數(shù)器寄存器顯示,詳見本節(jié)。錯誤和狀態(tài)寄存器包含關(guān)于控制器局域網(wǎng)模塊實際狀態(tài)的信息,并顯示總線錯誤標(biāo)志和錯誤狀態(tài)標(biāo)志。為了將CANES寄存器更新為錯誤標(biāo)志的實際值,設(shè)置的錯誤標(biāo)志必須通過寫入1來確認(rèn)。(13)CANTEC/CANREC(CANErrorCounterRegisters,CAN錯誤計數(shù)器寄存器)控制器局域網(wǎng)模塊包含兩個錯誤計數(shù)器:接收錯誤計數(shù)器和發(fā)送錯誤計數(shù)器。兩個計數(shù)器的值都可以通過CPU接口讀取。這些計數(shù)器根據(jù)CAN局域網(wǎng)協(xié)議規(guī)范進(jìn)行遞增或遞減。(14)CANGIF0/CANGIF1(GlobalInterruptFlagRegisters,全局中斷標(biāo)志寄存器)這些寄存器允許中央處理器識別中斷源。如果相應(yīng)的中斷條件確實發(fā)生,則中斷標(biāo)志位被置位。全局中斷標(biāo)志的設(shè)置取決于CANGIM寄存器中GIL位的設(shè)置。(15)CANGIM(GlobalInterruptMaskRegister,全局中斷屏蔽寄存器)中斷屏蔽寄存器的設(shè)置與中斷標(biāo)志寄存器相同。如果一個位被置位,相應(yīng)的中斷被使能。該寄存器受EALLOW保護(hù)(16)CANTIOC,CANRIOC(eCANI/OControlRegisters,輸入輸出控制寄存器)CANTX和CANRX引腳應(yīng)配置為使用CAN。這是使用CANTIOC和CANRIOC寄存器完成的。(17)定時器管理單元定時器管理單元包括五個寄存器,分別為CANTSC(Time-StampCounterRegister,時間戳計數(shù)器寄存器)、MOTS(MessageObjectTimeStampRegisters,消息對象時間戳寄存器)、MOTO(Message-ObjectTime-OutRegisters,消息對象超時寄存器)、CANTOC(Time-OutControlRegister,超時控制寄存器)、CANTOS(Time-OutStatusRegister,超時狀態(tài)寄存器)。(18)郵箱布局管理單元郵箱的設(shè)置包含四個寄存器,分別為MSGID(MessageIdentifierRegister,消息標(biāo)識符寄存器)、MSGCTRL(Message-ControlRegister,消息控制寄存器)、CANMDL,CANMDH(MessageDataRegisters,消息數(shù)據(jù)寄存器)(19)CANLAM(LocalAcceptanceMasks,本地接受掩碼)本地接受過濾允許用戶在本地屏蔽(不在乎)傳入消息的任何標(biāo)識符位。在SCC中,本地接受掩碼寄存器LAM(0)用于郵箱2到0。本地接受掩碼寄存器LAM(3)用于郵箱5至3。對于郵箱6到15,使用全局接受掩碼(CANGAM)寄存器。在SCC模塊的硬件或軟件復(fù)位之后,CANGAM被復(fù)位到零。eCAN復(fù)位后,LAM寄存器不會被修改。在eCAN中,每個郵箱(0到31)都有自己的掩碼寄存器,LAM(0)到LAM(31)。傳入郵件存儲在具有匹配標(biāo)識符的最高編號的郵箱中。4.3eCAN模塊的初始化在使用之前,必須初始化控制器局域網(wǎng)模塊。只有當(dāng)模塊處于初始化模式時,初始化才是可被設(shè)置的。圖3-1是顯示該過程的流程圖。編程CCR(CANMC.12)=1設(shè)置初始化模式。只有當(dāng)CCE(CANES.4)=1時,才能執(zhí)行初始化。之后,可以寫入配置寄存器。僅SCC模式是指為了修改全局接受掩碼寄存器(CANGAM)和兩個本地接受掩碼寄存器[LAM(0)和LAM(3)],還必須在初始化模式下設(shè)置CAN模塊。該模塊通過編程CCR(CAMC.12)=0再次激活。硬件復(fù)位后,初始化模式激活。具體流程如下圖所示圖CAN模塊初始化流程圖4.3.1CAN位定時配置CAN協(xié)議規(guī)范將標(biāo)稱位時間分為四個不同的時間段:(1)SYNC_SEG:這部分位時間用于同步總線上的各個節(jié)點。上升沿或下降沿的邊緣預(yù)計位于該段內(nèi),該段總是1時間量子(TQ)。(2)PROP_SEG:這部分位時間用于補(bǔ)償網(wǎng)絡(luò)內(nèi)的物理延遲時間。它是信號傳播總和的兩倍總線上的時間、輸入比較器延遲和輸出驅(qū)動器延遲。該段可從1至8個時間量子(TQ)進(jìn)行編程。(3)PHASE_SEG1:該相位用于補(bǔ)償正邊沿相位誤差。該段可從1至8時間量子(TQ)編程,并可通過再同步延長。(4)PHASE_SEG2:該相位用于補(bǔ)償負(fù)沿相位誤差。該段可從2到8個時間量子(TQ)進(jìn)行編程,并可通過重新同步縮短。在eCAN模塊中,CAN總線上一個位的長度由參數(shù)TSEG1(BTC.6-3)、TSEG2(BTC.2-0)和BRP(BTC.23.16)決定。TSEG1結(jié)合了由CAN協(xié)議定義的兩個子時間段PROP_SEG和PHASE_SEG1。TSEG2定義時間段PHASE_SEG2的長度。IPT(信息處理時間)對應(yīng)于處理位讀取所需的時間。IPT相當(dāng)于TQ的兩個單位。在確定各個位段的大小時,必須滿足以下位時序規(guī)則:(1)TSEG1(min)≥TSEG2(2)IPT≤TSEG1≤16TQ(IPT=信息處理時間)(3)IPT≤TSEG2≤8TQ(4)IPT=3/BRP(結(jié)果IPT必須向上舍入到下一個整數(shù)值)(5)1TQ≤SJW最小值[4TQ,TSEG2](SJW=同步跳變寬度)(6)要使用三次采樣模式,必須選擇BRP≥5圖CAN位時序4.3.2傳輸波特率的配置比特率是指每秒傳送的比特(bit)數(shù)。單位為bps(BitPerSecond),比特率越高,傳送數(shù)據(jù)速度越快。比特率以每秒位數(shù)計算,如下所示:Bitrate=其中比特時間是每比特的時間量子數(shù)。SYSCLKOUT是CAN模塊系統(tǒng)時鐘頻率,與CPU時鐘頻率相同。BRP是BRPreg+1的值。位時間定義如下:Bit?time=在上式中,TESG1reg和TSEG2reg代表CANBTC寄存器相應(yīng)字段中寫入的實際值。當(dāng)控制器局域網(wǎng)模塊訪問這些參數(shù)時,參數(shù)TSEG1reg、TSEG2reg、SJWreg和BRPreg自動增強(qiáng)1。TSEG1、TSEG2和SJW代表上圖3-2中適用的值Bit?time=本課題所采用的TMS320F28335時鐘頻率為150MhZSYSCLKOUT的位配置參數(shù)下面兩個表格分別提供了各種SYSCLKOUT、比特率和采樣點的CANBTC位字段的示例值。在實際應(yīng)用中,若傳輸?shù)木嚯x很長,在選擇時序參數(shù)之前,必須考慮網(wǎng)絡(luò)電纜、收發(fā)器/隔離器等各種實體引入的傳播延遲。表3-1顯示了如何更改BRPreg字段,以在80%速度下獲得15的不同波特率CANBusSpeedBPRCANClock1MbpsBPRreg+1=1015MHz500KbpsBPRreg+1=207.5MHz250KbpsBPRreg+1=403.75MHz125KbpsBPRreg+1=801.875MHz100KbpsBPRreg+1=1001.5MHz50KbpsBPRreg+1=2000.75MHz表3-1BRP場的比特率注:BT(Bit-time,比特單位時間)=15,TSEG1reg=10,TSEG2reg=2,SP(Samplingpoints,采樣率)=80%表3-2說明了如何設(shè)置TSEG1reg和TSEG2reg的值從而獲得不同的SPTSEG1regTSEG2regSP10280%9373%8466%7560%表3-2不同SP對應(yīng)的TSTG寄存器的值4.3.3EALLOW(Editallow)保護(hù)為了防止意外修改,eCAN模塊的一些關(guān)鍵寄存器/位受到EALLOW保護(hù)。只有當(dāng)EALLOW保護(hù)被禁用時,才能更改這些寄存器/位。以下是eCAN模塊中受EALLOW保護(hù)的寄存器/位:(1)CANMC[15..9]&MCR[7..6](2)CANBTC(3)CANGIM(4)MIM[31..0](5)TSC[31..0](6)IOCONT1[3](7)IOCONT2[3]4.4配置eCAN模塊(1)使能CAN模塊的時鐘。(2)將CANTX和CANRX引腳設(shè)置為CAN功能:寫CANTIOC.3:0=0x08寫CANORIOC.3:0=0x08(3)復(fù)位后,位CCR(CANCMC.12)和位CCE(CANES.4)設(shè)置為1。這允許用戶配置位定時配置寄存器(CANBTC)。如果CCE位被置位(CANES.4=1),繼續(xù)下一步;否則,置位CCR位(CANMC.12=1),并等待直到CCE位置位(CANES.4=1)。(4)用適當(dāng)?shù)亩〞r值對CANBTC寄存器進(jìn)行編程。確保值TSEG1和TSEG2不為0。如果它們?yōu)?,模塊不會離開初始化模式。(5)對于SCC,現(xiàn)在對驗收掩碼進(jìn)行編程。例如:WriteLAM(3)=0x3C0000(6)對主控制寄存器(CANMC)進(jìn)行編程:(7)將MSGCTRLn寄存器的所有位初始化為零。(8)驗證CCE位已清除(CANES.4=0),表明已配置了控制器局域網(wǎng)模塊?;竟δ艿脑O(shè)置到此結(jié)束。4.5遠(yuǎn)程框架郵箱的處理遠(yuǎn)程幀處理有兩個功能。一個是模塊從另一個節(jié)點請求數(shù)據(jù),另一個是另一個節(jié)點請求模塊需要回答的數(shù)據(jù)。一、從另一個節(jié)點請求數(shù)據(jù)為了從另一個節(jié)點請求數(shù)據(jù),該對象被配置為接收郵箱。在本例中使用對象3,CPU需要做以下工作:(1)將消息控制字段寄存器(CANMSGCTRL)中的RTR位設(shè)置為1。WriteMSGCTRL(3)=0x12(2)將正確的標(biāo)識符寫入消息標(biāo)識符寄存器(MSGID)。WriteMSGID(3)=0x4F780000(3)為該郵箱設(shè)置CANTRS標(biāo)志。由于郵箱被配置為接收,它只向另一個節(jié)點發(fā)送遠(yuǎn)程請求消息。SetCANTRS.3=1(4)該模塊將答案存儲在該郵箱中,并在收到時設(shè)置RMP位。該動作可以啟動中斷。此外,確保沒有其他郵箱具有相同的標(biāo)識。等待RMP.3=1(5)讀取收到的消息。二、應(yīng)答遠(yuǎn)程請求(1)將對象配置為傳輸郵箱。(2)在啟用郵箱之前,在MSGID寄存器中設(shè)置自動應(yīng)答模式(AAM)(MSGID.29)位。MSGID(1)=0x35AC0000(3)更新數(shù)據(jù)字段。MDL,MDH(1)=xxxxxxxxxh(4)通過將CANME標(biāo)志設(shè)置為1來啟用郵箱。CANME.1=1當(dāng)從另一個節(jié)點接收到遠(yuǎn)程請求時,會自動設(shè)置TRS標(biāo)志,并將數(shù)據(jù)傳輸?shù)皆摴?jié)點。接收的消息和發(fā)送的消息的標(biāo)識符是相同的。數(shù)據(jù)傳輸后,TA被置位。然后CPU就可以更新數(shù)據(jù)了。等待TA.1=1三、更新數(shù)據(jù)字段要更新在自動應(yīng)答模式下配置的對象的數(shù)據(jù),需要執(zhí)行以下步驟。該序列也可用于更新在正常傳輸中配置的帶有TRS標(biāo)志集的對象的數(shù)據(jù)。(1)在主控制寄存器(CANMC)中設(shè)置更改數(shù)據(jù)請求(CDR)(MC.8)位和該對象的郵箱號(MBNR)。這告訴控制器局域網(wǎng)模塊,中央處理器想改變數(shù)據(jù)字段。例如,對于對象1:WriteMC=0x0000101(2)將消息數(shù)據(jù)寫入郵箱數(shù)據(jù)寄存器。如:WriteCANMDL(1)=xxxx0000h(3)清除CDR位(MC.8)以啟用對象。如:WriteMC=0x000000004.5.1消息對象eCAN模塊有32個消息對象(郵箱)。每個消息對象都可以配置為發(fā)送或接收。每個消息對象都有自己的接受掩碼(在eCAN模式下;不在SCC模式下)。消息對象由一個消息郵箱組成,該郵箱具有29位消息標(biāo)識符消息控制寄存器、8字節(jié)消息數(shù)據(jù)、29位接受掩碼、32位時間戳、32位超時標(biāo)識符。此外,寄存器中相應(yīng)的控制和狀態(tài)位允許控制消息對象。4.5.2傳輸郵箱和接收郵箱一、為傳輸配置郵箱要發(fā)送消息,需要執(zhí)行以下步驟:(1)將CANTRS寄存器中的適當(dāng)位清零:(2)通過清除郵箱啟用(CANME)寄存器中的相應(yīng)位來禁用郵箱。(3)加載郵箱的消息標(biāo)識符(MSGID)寄存器。清除正常發(fā)送郵箱的AME。該寄存器在運行期間通常不會被修改。只有當(dāng)郵箱被禁用時,才能對其進(jìn)行修改。將數(shù)據(jù)長度寫入消息控制字段寄存器的DLC字段。RTR標(biāo)志通常被清除。CANMSGCTRL寄存器通常在操作期間不被修改,并且只能在郵箱被禁用時被修改。通過清除CANMD寄存器中的相應(yīng)位來設(shè)置郵箱方向。(4)通過設(shè)置CANME寄存器中的相應(yīng)位來設(shè)置郵箱使能,將郵箱1配置為傳輸模式。二、傳遞信息開始傳輸:(1)將郵件數(shù)據(jù)寫入郵箱數(shù)據(jù)字段。(2)在發(fā)送請求寄存器中設(shè)置相應(yīng)的標(biāo)志,開始發(fā)送消息??刂破骶钟蚓W(wǎng)模塊現(xiàn)在處理控制器局域網(wǎng)信息的完整傳輸。(3)等待直到相應(yīng)郵箱的發(fā)送確認(rèn)標(biāo)志被設(shè)置。成功傳輸后,該標(biāo)志由控制器局域網(wǎng)模塊設(shè)置。(4)在成功或中止傳輸后,模塊將TRS標(biāo)志重置為0。(5)必須為下一次傳輸(從同一郵箱)清除傳輸確認(rèn)。(6)要在同一個郵箱中傳輸另一條消息,必須更新郵箱RAM數(shù)據(jù)。設(shè)置TRS.1標(biāo)志開始下一次傳輸。寫入郵箱內(nèi)存可以是半字(16位)或全字(32位),但模塊總是從偶數(shù)邊界返回32位。CPU必須接受全部32位或部分32位。三、為接收配置郵箱要配置郵箱以接收郵件,必須執(zhí)行以下步驟:(1)通過清除郵箱啟用(CANME)寄存器中的相應(yīng)位來禁用郵箱。(2)將選定的標(biāo)識符寫入相應(yīng)的MSGID寄存器。標(biāo)識符擴(kuò)展位必須配置為適合預(yù)期的標(biāo)識符。如果使用接受掩碼,則必須設(shè)置接受掩碼使能(AME)位。(3)如果AME位設(shè)置為1,則必須對相應(yīng)的接受掩碼進(jìn)行編程。(4)通過在郵箱方向寄存器中設(shè)置相應(yīng)的標(biāo)志,將郵箱配置為接收郵箱。確保該寄存器中的其他位不受此操作的影響。(5)如果要保護(hù)郵箱中的數(shù)據(jù),現(xiàn)在應(yīng)該對覆蓋保護(hù)控制寄存器(CANOPC)進(jìn)行編程。如果沒有消息必須丟失,這種保護(hù)是有用的。如果設(shè)置了OPC,軟件必須確保額外的郵箱(緩沖郵箱)被配置為存儲“溢出”消息。否則,消息可能會丟失而不被通知。(6)通過在郵箱啟用寄存器(CANME)中設(shè)置適當(dāng)?shù)臉?biāo)志來啟用郵箱。四、接收消息本示例使用郵箱3。當(dāng)接收到一條消息時,接收消息掛起寄存器(CANRMP)中的相應(yīng)標(biāo)志被置1,可以啟動中斷。然后CPU可以從郵箱RAM中讀取消息。在CPU從郵箱讀取消息之前,應(yīng)該先清除RMP位。讀取數(shù)據(jù)后,CPU需要檢查RMP位是否沒有被模塊再次置位。如果RMP位已設(shè)置為1,則數(shù)據(jù)可能已損壞。中央處理器需要再次讀取數(shù)據(jù),因為當(dāng)中央處理器讀取舊消息時,收到了新消息。4.6中斷的配置有兩種不同類型的中斷。一種中斷是與郵箱相關(guān)的中斷,如接收消息掛起中斷或中止確認(rèn)中斷。另一種中斷是處理錯誤或系統(tǒng)相關(guān)中斷源的系統(tǒng)中斷,如錯誤被動中斷或喚醒中斷。下面分別列出兩種中斷和其觸發(fā)因素。一、郵箱中斷(1)消息接收中斷:收到一條消息(2)消息傳輸中斷:消息傳輸成功(3)中止-確認(rèn)中斷:一個掛起的傳輸被中止(4)接收消息丟失中斷:舊消息被新消息覆蓋(在舊消息被讀取之前)(5)郵箱超時中斷(僅適用于電子商務(wù)模式):其中一條消息未在預(yù)定義的時間范圍內(nèi)發(fā)送或接收二、系統(tǒng)中斷(1)寫拒絕中斷:CPU試圖寫入郵箱,但不允許(2)喚醒中斷:該中斷是在喚醒后產(chǎn)生的(3)總線斷開中斷:CAN模塊進(jìn)入總線斷開狀態(tài)(4)錯誤被動中斷:CAN模塊進(jìn)入錯誤被動模式(6)警告級中斷:一個或兩個錯誤計數(shù)器大于或等于96(7)時間戳計數(shù)器溢出中斷(僅限eCAN):時間戳計數(shù)器溢出4.7控制器局域網(wǎng)的掉電模式在本地斷電模式下,控制器局域網(wǎng)模塊的時鐘被關(guān)閉(由控制器局域網(wǎng)模塊本身關(guān)閉),只有喚醒邏輯仍處于活動狀態(tài)。其他外設(shè)繼續(xù)正常工作。通過向PDR位寫入1來請求本地掉電模式,從而允許傳輸任何正在進(jìn)行的數(shù)據(jù)包。傳輸完成后,設(shè)置狀態(tài)位PDA(CANES.3)。這確認(rèn)了控制器局域網(wǎng)模塊已經(jīng)進(jìn)入斷電模式。CANES寄存器讀取的值為0x08。所有其他寄存器讀取訪問都傳遞0x00值。當(dāng)PDR位被清除或在控制器局域網(wǎng)總線線路上檢測到任何總線活動時(如果喚醒總線活動被啟用),模塊離開本地掉電模式。通過CANMC寄存器的配置位WUBA,可以啟用或禁用自動喚醒總線活動。如果在控制器局域網(wǎng)總線上有任何活動,模塊開始其加電序列。該模塊一直等到在CANRX引腳上檢測到11個連續(xù)的隱性位,然后變?yōu)榭偩€有效。4.8本章小結(jié)本章先對eCAN模塊的控制寄存器及其功能進(jìn)行了列舉和介紹。先對CAN模塊的初始化流程進(jìn)行了介紹,說明了CAN的定時配置分為四個不同的時間段,并通過相應(yīng)的寄存器控制即可改變數(shù)據(jù)傳輸?shù)牟ㄌ芈?。接著說明如何按照流程圖進(jìn)行程序初始化的實現(xiàn)。之后詳細(xì)介紹了eCAN模塊的32個郵箱,通過事例介紹配置發(fā)送郵箱、接收郵箱從而進(jìn)行收發(fā)數(shù)據(jù)的方法。在最后說明了中斷的配置分為系統(tǒng)中斷和郵箱中斷,控制器局域網(wǎng)的掉電模式。完成了對eCAN寄存器配置的介紹。第5章系統(tǒng)調(diào)試和實驗驗證5.1集成編譯環(huán)境CCS簡介CCS(CodeComposerStudio)是一種集成開發(fā)環(huán)境(IDE),支持TI的微控制器和嵌入式處理器產(chǎn)品系列。CodeComposerStudio包含一整套用于開發(fā)和調(diào)試嵌入式應(yīng)用的工具。它包含了用于優(yōu)化的C/C++編譯器、源碼編輯器、項目構(gòu)建環(huán)境、調(diào)試器、描述器以及多種其他功能。直觀的IDE提供了單個用戶界面,可幫助操作者完成應(yīng)用開發(fā)流程的每個步驟。CodeComposerStudio將Eclipse軟件框架的優(yōu)點和TI先進(jìn)的嵌入式調(diào)試功能相結(jié)合,為嵌入式開發(fā)人員提供了一個引人注目、功能豐富的開發(fā)環(huán)境。本課題基于該集成編譯環(huán)境編寫了程序并進(jìn)行調(diào)試。5.2示波器簡介數(shù)字示波器主要工作過程是利用數(shù)模之間的轉(zhuǎn)換和數(shù)模存儲技術(shù)完成實現(xiàn)的,數(shù)字示波器可以在較短時間內(nèi)完成對信號變換的保存與更新。示波器在工作的工程中,首先對輸人的模擬信號進(jìn)行二進(jìn)制編碼,并將編碼結(jié)果存儲,在使用時,可以將存儲數(shù)據(jù)及時調(diào)出,并以信號波形的形式顯示在顯示器上。然后利用數(shù)字信號處理的相關(guān)知識對數(shù)字信號進(jìn)行處理和計算,以獲取所需信號參數(shù);最后,利用示波器將所采集的信號參數(shù)進(jìn)行描繪,并對被測信號進(jìn)行實時、瞬態(tài)分析,以方便用戶了解信號質(zhì)量,快速準(zhǔn)確地進(jìn)行故障診斷。實時取樣是對一個周期內(nèi)的信號的不同點取樣,它與取樣示波器的跨周期取樣是不同的。N個取樣點得到的數(shù)字量分別存儲于地址號為0OH-ONH的N個RAM存儲單元中,這樣,采樣點所存儲的地址信息即表示了采樣點的時間信息。由于數(shù)字系統(tǒng)對離散的信號進(jìn)行智能化處理智能處理,所以必須對模擬連續(xù)的波形先進(jìn)行采樣,再進(jìn)行模/數(shù)(A/D)轉(zhuǎn)換。根據(jù)奈奎斯特定理,只有當(dāng)抽樣的頻率大于處理信號的頻率的兩倍時,才能在顯示端復(fù)現(xiàn)出理想的該信號。數(shù)字存儲示波器的最終目的是將存儲器中所存儲的波形顯示出來,以便于用戶進(jìn)行觀察、處理、測量以及分析。為了可以對不同波形的觀測,數(shù)字存儲示波器有存儲顯示、雙蹤顯示、點顯示、插值顯示、流動顯示等多種靈活的顯示方式。5.3CAN卡的調(diào)試實驗一、CAN卡簡介USBCAN-2(A/C)總線適配器是帶有USB2.0接口和2路CAN接口的CAN總線適配器。CANalyst-II分析儀是帶有USB2.0接口和2路CAN接口的CAN分析儀,具備CAN總線協(xié)議分析功能,支持SAEJ1939、DeviceNet、CANopen、iCAN以及自定義高層協(xié)議分析功能,兼容周立功的CANPro軟件。USBCAN總線適配器/CANalyst-II分析儀可以被作為一個標(biāo)準(zhǔn)的CAN節(jié)點,是CAN總線產(chǎn)品開發(fā)、CAN總線設(shè)備測試、數(shù)據(jù)分析的強(qiáng)大工具。采用該接口適配器,PC可以通過USB接口連接一個標(biāo)準(zhǔn)CAN網(wǎng)絡(luò),應(yīng)用于構(gòu)建現(xiàn)場總線測試實驗室、工業(yè)控制、智能樓宇、汽車電子等領(lǐng)域中,進(jìn)行數(shù)據(jù)處理、數(shù)據(jù)采集、數(shù)據(jù)通訊。同時,USBCAN/CANalyst-II分析儀具有體積小、方便安裝等特點,也是便攜式系統(tǒng)用戶的最佳選擇。CANalyst-II分析儀,USB、CAN1、CAN2三端之間完全隔離。二、CAN卡自發(fā)自收實驗珠海創(chuàng)芯科技的CAN卡擁有雙路標(biāo)準(zhǔn)協(xié)議收發(fā)器,于是將兩路CANL、CANH分別連接,考慮到阻抗不匹配效應(yīng),需要添加終端電阻,終端電阻的作用就是吸收信號反射及回波,而產(chǎn)生信號反射的最大來源便是阻抗不連續(xù)以及不匹配。如果是加在單獨的兩根線上,相當(dāng)于一個開環(huán)的狀態(tài),根據(jù)產(chǎn)生信號反射的來源,也就是說這種連接方式會導(dǎo)致單線上阻抗更加不連續(xù),在末端突然變?yōu)?,會導(dǎo)致反射成倍增加。因此綜合考慮后,在發(fā)送數(shù)據(jù)和接受數(shù)據(jù)端分別并聯(lián)一個120Ω的電阻。具體實物連接如圖所示。圖USB-CAN適配器接線圖在先后安裝VC++2008運行庫、LABVIEW運行基本環(huán)境、USB驅(qū)動。經(jīng)過該款CAN卡的適配軟件USB-CANTool調(diào)試成功后,實現(xiàn)了數(shù)據(jù)的自發(fā)自收,表明CAN卡經(jīng)調(diào)試完畢后正常工作。5.3系統(tǒng)連接整機(jī)實驗在拿到打樣完成后的電路板后,需要對電路板對應(yīng)的元器件進(jìn)行焊接。首先,在先前通過AltiumDesigner18的四層板結(jié)構(gòu)的PCB板后,經(jīng)廠家加工得到了電路板。在嚴(yán)格對照原理圖等資料后,我列出了一份元器件清單,其中包含電感、電容、電阻、收發(fā)器芯片、接插件串口、晶振、發(fā)光二極管、光耦等元器件。按照模塊分別焊接和調(diào)試,注意焊接時應(yīng)該按照PCB版圖嚴(yán)格按照管腳方向焊接元器件,不然可能上電后會造成元器件的永久性損壞。同時應(yīng)該注意電感電容的類型,其主要分為貼片式和坐立式,以及不同收發(fā)芯片的封裝,以免出現(xiàn)元器件與電路板不匹配的問題。在焊接時,注意用砂紙小心打磨有氧化膜的管腳,不然焊錫與管腳不相容,無法將元器件有效焊接。在焊接完成后,先用電源驅(qū)動電路板,用萬用表對各個模塊以及芯片管腳進(jìn)行電壓或者阻抗測試,初步排除短路和斷路的基本問題。在上電后,發(fā)現(xiàn)之前設(shè)置的電源模塊和濾波電路模塊所串聯(lián)的指示燈亮起,這證明電路板的這兩個模塊基本正常工作。再用萬用表測試在PCB版圖上預(yù)留好的兩個三端集成穩(wěn)壓器旁邊的測試接口,發(fā)現(xiàn)電壓符合預(yù)設(shè)的3.3V和1.9V電壓,并且微微溫?zé)?,這表明線性穩(wěn)壓器工作正常。在VMwareWorkstation軟件條件下運行虛擬機(jī),安裝好相應(yīng)驅(qū)動后,連接JTAG接口,打開并成功配置CCS集成編譯環(huán)境選擇好指定型號的DSP后,利用Debug功能進(jìn)行調(diào)試連接后,成功彈出由匯編字符串構(gòu)成的回復(fù)窗口。這證明JTAG模塊和TMS320F28335本身已經(jīng)成功使能,硬件物理層板級電路可以正常工作。圖實際焊接后得到的電路板本實驗通過型號為YW-7520,額定電壓為7.5V,額定電流為2A的電源適配器對電路板進(jìn)行直流供電。在每次上電后,都要通過型號為XDS510的TI公司生產(chǎn)的仿真器通過JTAG接口向板中燒錄程序。通訊系統(tǒng)由上位機(jī)、CAN卡、電路板三部分構(gòu)成,實現(xiàn)基于TMS320F28335的CAN通信接口經(jīng)過收發(fā)芯片SN65HVD230將DSP管腳的TTL電平轉(zhuǎn)化為收發(fā)器發(fā)出的收發(fā)波形,再通過CAN卡解析再CAN卡管腳處得到標(biāo)準(zhǔn)的CAN2.0協(xié)議電平,并進(jìn)一步轉(zhuǎn)化為USB2.0協(xié)議與上位機(jī)(本課題為了方便調(diào)試,上位機(jī)擬采用計算機(jī))進(jìn)行通信。其中最終系統(tǒng)完整的連接圖如下圖所示。圖通信系統(tǒng)連接圖示最后依次基于C語言配置32個郵箱的四個對應(yīng)寄存器。并把32位CPU寄存器、通過I/O寄存器、外部中斷寄存器寫入頭文件中。在接下來寫主函數(shù)時對于第四章介紹的系統(tǒng)啟用保護(hù)的部分寄存器,要先聲明解除系統(tǒng)保護(hù)EALLOW后,再進(jìn)行更改。由于部分寄存器(如CANTX/CANRX)只支持16位或32位更改。這就要創(chuàng)建

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論