freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于can總線的停車場(chǎng)智能燈光系統(tǒng)的軟件設(shè)計(jì)畢業(yè)論文(參考版)

2025-03-02 09:10本頁(yè)面
  

【正文】 開(kāi) 始在 接 受上 次 發(fā) 達(dá) 完 成緩 沖 區(qū) 鎖 定設(shè) 定 發(fā) 送 報(bào) 文 格 式設(shè) 置 接 受 節(jié) 點(diǎn) 號(hào)填 充 8 個(gè) 待 發(fā) 送 數(shù) 據(jù)啟 動(dòng) 發(fā) 送完 成YYYNNN 圖 48CAN發(fā)送程序流程圖 25 串口發(fā)送子程序: void Uart_。 發(fā)送子程序負(fù)責(zé)節(jié)點(diǎn)報(bào)文的發(fā)送,發(fā)送時(shí)用戶只需將待發(fā)送的數(shù)據(jù)按特定格式組合成一幀報(bào)文,送入 SJA1000發(fā)送緩存區(qū)中,然后啟動(dòng)SJA1000發(fā)送即可,當(dāng)然在往 SJA1000發(fā)送緩存區(qū)送報(bào)文之前,必須先作一些判斷,發(fā)送程序分發(fā)送遠(yuǎn)程幀和數(shù)據(jù)幀兩種,遠(yuǎn)程幀無(wú)數(shù)據(jù)場(chǎng)。 } 節(jié)點(diǎn)發(fā)送子程序 發(fā)送子程序采用查詢方式發(fā)送,分為串口發(fā)送子程序, CAN發(fā)送子程序。 SJA_INIT()。 24 Delay(10)。i10。} P1_4=1。i++) { P1_4=~P1_4。 //釋放接收緩沖器,清除數(shù)據(jù)溢出狀態(tài) For(i=0。 } else { if(intregamp。 //釋放接收緩沖器 while((SRamp。 //接收數(shù)據(jù) Sja_Rcv_Flag=1。0x0f) +4。 //保存接收的數(shù)據(jù)個(gè)數(shù) for(i=0,j=1。} else //是數(shù)據(jù)幀,讀取數(shù)據(jù) { Uart_Send[0]=(tempamp。0x40) //判斷是數(shù)據(jù)幀還是遠(yuǎn)程幀 { CMR=0x04。0x01) //判斷是否接收中斷 { temp=*RXD。 intreg=IR。 EA=0。 } CAN總線中斷接收子程序: void SJA_INTv(void) interrupt 1 { unsigned char xdata *RXD。} else 23 Uart_Rcv_Flag=0。 //接收個(gè)數(shù)標(biāo)志 if(Uart_Rcv_Point7) { Uart_Rcv_Flag=1。 Uart_Rcv[Uart_Rcv_Point]=TempData。} else if(RI) { RI=0。 EA=1。 P1_2=~P1_2。 22 釋 放 接 收 緩 沖 區(qū) ,置 C A N 接 收 標(biāo) 志 位釋 放 接 收緩 沖 區(qū)數(shù) 據(jù) 溢出 處 理C A N 總 線錯(cuò) 誤 處 理開(kāi) 中 斷接 收 數(shù) 據(jù)遠(yuǎn) 程 幀接 收 中 斷數(shù) 據(jù) 溢 出完 成關(guān) 中 斷YNYNYN 圖 47 CAN中斷接收程序流程圖 串口中斷接收子程序: void Uart_Val(void) interrupt 4 //串口中斷處理函數(shù) { unsigned char TempData。下面為中斷方式接收子程序。 接收子程序負(fù)責(zé)節(jié)點(diǎn)報(bào)文的接收以及其它情況處理,接收子程序比發(fā)送子程序要復(fù)雜一些。 //工作指示 } 節(jié)點(diǎn)接收子程序 該節(jié)點(diǎn)接收程序分為串口接收程序和從 CAN總線上接收的接收程序。 Delay(20)。i8。 //等待進(jìn)入工作模式 EA=1。 //返回當(dāng)前工作模式 while((MODamp。 //16MHz晶振情況下,設(shè)置波特率為 80kb/s OCR=0xAA。 //設(shè)置屏蔽寄存器 BTR0=0x03。AMR2=0x00。 //設(shè)置節(jié)點(diǎn)號(hào) AMR0=0x00。ACR2=R_ID2。 //開(kāi)放接收中斷數(shù)據(jù)溢出中斷總線錯(cuò) 誤中斷 ACR0=R_ID0。 CDR=0x88。 while((MODamp。JA_INIT(void) { int i。 //開(kāi)始計(jì)數(shù) ES=1。 //波特率 9600bps 11,0592M TL1 = 0xfd。 //串口工作方式 1 TMOD = 0x20。 PCON=0x00。 EX0=1。 PX0=1。這些符號(hào)在程序的頭部用偽指令 EQU來(lái)定義。在完成 SJA1000 的初始化設(shè)置以后 SJA1000就可以回到工作狀態(tài)進(jìn)行正常的通信任務(wù)。 初始化子程序 初始化程序包括 MCU初始化程序和 SJA1000初始化程序。 系統(tǒng)的智能節(jié)點(diǎn)按其功能可分為三種:進(jìn)出口智能節(jié)點(diǎn)、停車場(chǎng)內(nèi)的智能節(jié)點(diǎn)、 CAN適配器。 8 9 C 5 2單 片 機(jī)S J A 1 0 0 0控 制 器8 2 C 2 5 0收 發(fā) 器外 圍 設(shè) 備C A N 總 線 圖 45 CAN總線智能節(jié)點(diǎn)結(jié)構(gòu)框圖 CAN總線 智能節(jié)點(diǎn)的軟件設(shè)計(jì)主要包括三大部分:節(jié)點(diǎn)初始化、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收。從圖中可以看出,電路主要由三部分所構(gòu)成:微控制器 P89C52X 獨(dú)立 CAN通信控制器 SJA1000和 CAN總線收發(fā)器 PCA82C主控制器 讀 SJA1000的狀態(tài)寄存器,檢查接收緩沖狀態(tài)標(biāo)志 (RBS)看是否收到個(gè)報(bào)文。就查詢方式為例介紹一下一般的發(fā)送過(guò)程。發(fā)送過(guò)程能被 SJA1000的中斷請(qǐng)求或查詢 SJAIOOO的控制段狀態(tài)標(biāo)志來(lái)控制。收到的報(bào)文放在接收緩沖器,可以發(fā)送給主控制器的報(bào)文由 狀態(tài)寄存 器的接收緩沖器狀態(tài)標(biāo)志 (RBS)和接收中斷標(biāo)志 (RD標(biāo)出 (如果使能 )。當(dāng) SJA1000接收到從總線上發(fā)送過(guò)來(lái)的一幀報(bào)文后,先驗(yàn)證標(biāo)志符,看是否是需要接收的正確報(bào)文。但是考 慮到系統(tǒng)對(duì)實(shí)時(shí)性的要求和電路設(shè)計(jì)的實(shí)際情況,需要在設(shè)計(jì)中做一些特殊的處理,不能只是簡(jiǎn)單地按查詢或中斷方式來(lái)完成發(fā)送任務(wù)。如果發(fā)送緩沖器被釋放,主控制器將新的報(bào)文寫(xiě)入發(fā)送緩沖器,并置位命令寄存器的“發(fā)送請(qǐng)求” (TR)標(biāo)志,此時(shí) SJA1000將啟動(dòng)發(fā)送。只要 SJA1000正在發(fā)送報(bào)文,發(fā)送緩沖器就被寫(xiě)鎖定 .因此在將新報(bào)文放入發(fā)送緩沖器之前,主控制器必須檢查狀態(tài)寄存器的“發(fā)送緩沖器狀態(tài)”標(biāo)志 (TBS)。下面就查詢方式為例介紹一下一般的發(fā)送過(guò)程。主控制器發(fā)送傳送到發(fā)送緩沖器的報(bào)文,然后將命令寄存器里的發(fā)送請(qǐng)求標(biāo)志置位。 ②系統(tǒng)中所有 CAN節(jié)點(diǎn)的通信速率必須一致,否則 CAN節(jié)點(diǎn)無(wú)法進(jìn)行通信。最后置復(fù)位請(qǐng)求位為低,使 SJA1000進(jìn)入正常狀態(tài)工作,并選擇單濾波方式后,再置中斷允許寄存器的接收中斷允許位為 0??偩€定時(shí)寄存器 1的內(nèi)容決定位周期寬度、采用點(diǎn)位置和在每個(gè)采樣點(diǎn)獲取采樣的數(shù)目。為補(bǔ)償不同總線控制器時(shí)鐘 振蕩器之間的相移,任何總線控制器必須同步于當(dāng)前進(jìn)行發(fā)送的信號(hào)沿。這為系統(tǒng)中錯(cuò)綜復(fù)雜的通信帶來(lái)了極大的方便。這兩個(gè)寄存器也是編排標(biāo)識(shí)符的基本依據(jù)。 驗(yàn)收屏蔽寄存器是 SJA1000驗(yàn)收濾波器的一部分,它認(rèn)定驗(yàn)收碼的碼位對(duì)于驗(yàn)收濾波是“相關(guān)”的或“不相關(guān)”的。 條件二 :AMR=Oxff,即 ACR的所有位均為不相關(guān)位。當(dāng)滿足以下兩個(gè)條件之一,并存在空的接收緩存器 (RBF)時(shí),完整報(bào)文可被正確接收。 (3) 中斷允許寄存器 初始化時(shí)中斷允許寄存器必須清零,否則初始化將有問(wèn)題。 初始化步驟如下: (1) 復(fù)位 只有當(dāng)控制寄存器 CR中的復(fù)位請(qǐng)求位為高時(shí),才允許訪問(wèn)上述寄存器。在設(shè) 型為 :物理層、 WSJAIOOO的寄存器前,主 控制器通過(guò)讀復(fù)位模式 /請(qǐng)求標(biāo)志來(lái)檢查 SJA1000是否已達(dá)到復(fù)位模式,因?yàn)橐玫脚渲眯畔? 16 的寄存器僅在復(fù)位模式可寫(xiě)。在主控制器操作期間它可能會(huì)發(fā)送一個(gè)(軟件 )復(fù)位請(qǐng)求, SJA1000會(huì)被重新配置 (再次初始化 )。之后, CPU即可通過(guò) SJA1000接收、發(fā)送緩沖區(qū)數(shù)據(jù),向物理總線接收和 發(fā)送數(shù)據(jù) . 圖 41 CAN的分層結(jié)構(gòu) SJA1000初始化 SJA1000的初始化非常重要,它是保證 CAN數(shù)據(jù)正確接收發(fā)送的基礎(chǔ)。當(dāng) SJA1000通訊控制器從總線接收到數(shù)據(jù)后,CPU再把數(shù)據(jù)取走。 CAN通訊協(xié)議的實(shí)現(xiàn),包括各種通訊幀的組織和發(fā)送,均是由集成在 SJAl000通訊控制器中的電路實(shí)現(xiàn)的,因此系統(tǒng)的開(kāi)發(fā)關(guān)鍵在于應(yīng)用層的設(shè)計(jì)。物理層和數(shù)據(jù)鏈路層的功能由 CAN接口器件完成,包括硬件電路和通訊協(xié)議兩部分。 15 第四章 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)通訊程序設(shè)計(jì) 軟件設(shè)計(jì)必須滿足 CAN總線通訊協(xié)議。闡述了系統(tǒng)設(shè)計(jì)思想,介紹了智能節(jié)點(diǎn)的組成 、 具體電路,另外還對(duì)智能節(jié)點(diǎn)的外圍硬件進(jìn)行了分析說(shuō)明。 D01D12D23D34D45D56D67D78CS9LE10Q011Q112Q213Q314Q415Q516Q617Q718R?7 4 H C 5 7 3+ O U T 19O U T 110+ O U T 211O U T 212+ O U T 313O U T 314+ O U T 415O U T 416+ IN 11I N 12+ IN 23I N 24+ IN 35I N 36+ IN 47I N 48R?T L P 5 2 1 4+ O U T 19O U T 110+ O U T 211O U T 212+ O U T 313O U T 314+ O U T 415O U T 416+ IN 11I N 12+ IN 23I N 24+ IN 35I N 36+ IN 47I N 48Q?T L P 5 2 1 4P 3 . 7P 2 . 02 0 0A L EP 0 . 0P 0 . 1P 0 . 2P 0 . 3P 0 . 4P 0 . 5P 0 . 6P 0 . 7 14 V c c1GND3O N /O F F5F E E D B A C K4O U T /P U T2L M 2 57 6 5+ 24 V1K3 m H4 70 u F 4 70 u F 0 .0 1 uF+ 5V 圖 36 電源原理圖 本章小結(jié) 本章介紹了系統(tǒng)硬件原理。如果 /OE是高電平, 圖 35 開(kāi)關(guān)量輸入電路原理圖 系統(tǒng)電源模塊 因?yàn)橄到y(tǒng)都是 24V供電,而單片機(jī)系統(tǒng)采用 5V電壓,且在 DC/DC變換后需要保證 5V電壓穩(wěn)定, LM2576芯片,它完成 DC/DC(直流變直流 )功能。 ADOAD7接微控制器的數(shù)據(jù)線, LE是 74HC573的輸出允許信號(hào),由微控制器經(jīng)譯碼產(chǎn)生。開(kāi)關(guān)信號(hào)經(jīng)光藕輸出后,還是高低電平的開(kāi)關(guān)量。 CAN智能節(jié)點(diǎn)的外圍硬件模塊設(shè)計(jì) 開(kāi)關(guān)量的輸入模塊 開(kāi)關(guān)量的輸入模塊用來(lái)設(shè)定節(jié)點(diǎn)的邏輯地址,各個(gè)節(jié)點(diǎn)根據(jù)這個(gè)邏輯地址進(jìn)行相互識(shí)別。為了提高系統(tǒng)的抗干擾能力,在微處理器和 CAN 收發(fā)器之間增加了電氣隔離電路,隔離電路采用光電隔離器件,自帶 DC/DC 電源模塊,無(wú)需外接電源。 CANbus 總線數(shù)據(jù)的接收發(fā)送由集成 CAN 控制器的微處理器和 CAN 收發(fā)器完成
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1