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

正文內(nèi)容

基于can總線的步進(jìn)電機(jī)控制系統(tǒng)-閱讀頁

2025-07-12 17:15本頁面
  

【正文】 :(1) 20腳 VCC,芯片正電源接+5V;(2) 40腳VSS,芯片地接0V;2. 時(shí)鐘類管腳:(1) 19腳XTAL1晶體振蕩電路反相輸入端(2) 18腳XTAL2 晶體振蕩電路反相輸出端。(2) 29腳 PSEN:29腳 PSEN 是片外程序存儲(chǔ)器讀選通腳,PSEN低電平有效。9腳還是個(gè)復(fù)用管腳,將Vpp接+5V備用電源后,一旦20腳電壓下降或斷電,能保護(hù)片內(nèi)RAM信息不回丟失,上電后正常工作。4. I/O管腳80C52共有4個(gè)8位并行I/O口:P0、PPP3,共32根引腳。 P3口第二功能定義端口第二功能端口第二功能RXD(串行輸入口)T0(記時(shí)器0外部輸入)TXD(串行輸出口)T1(記時(shí)器1外部輸入)INT0(外部中斷0)WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)INT1(外部中斷1)RD(外部數(shù)據(jù)存儲(chǔ)器讀選通) CAN總線節(jié)點(diǎn)接口電路設(shè)計(jì)CAN總線節(jié)點(diǎn)接口電路如圖3..,從電路原理圖中可以看出來,電路主要是由兩部分組成:獨(dú)立的CAN通訊控制器SJA1000和CAN總線驅(qū)動(dòng)器PCA82C單片機(jī)片外程序存儲(chǔ)器地址可以選中SJA1000,單片機(jī)通過這些地址可以對(duì)SJA1000芯片執(zhí)行相應(yīng)的讀出/寫入操作。INT與單片機(jī)的外部中斷1()連接,單片機(jī)ST89C52RC可以通過外部中斷的方式訪問SJA1000芯片內(nèi)部的存儲(chǔ)空間。為了直觀的觀察到CAN總線節(jié)點(diǎn)接口電路的工作情況,我特意在TX0和RX0上接了兩個(gè)發(fā)光二級(jí)管,當(dāng)CAN總線上呈現(xiàn)顯性信號(hào)時(shí)(CAN總線規(guī)定,顯性信號(hào)時(shí)低電平,隱性信號(hào)為高電平),發(fā)光二級(jí)管導(dǎo)通工作,發(fā)出紅色光,為了保護(hù)發(fā)光二極管、PCA82C250和SJA1000不被大電流燒毀,在發(fā)光二級(jí)管正電極與電源VCC接入一個(gè)一千歐姆的電阻,限制了發(fā)光二極管上的電流。它是PHILIPS半導(dǎo)體PCA82C200 CAN 控制器BasicCAN 的替代產(chǎn)品而且它增加了一種新的工作模式PeliCAN,這種工作模式支持最新的CAN 協(xié)議,并且向下兼容CAN 。 SJA1000管腳圖 PCA82C50芯片內(nèi)部框圖PCA82C250芯片是CAN 總線收發(fā)器, 是SJA1000CAN總線控制器和CAN總線間的硬件接口,具有抓取CAN總線的數(shù)據(jù)包,和把SJA1000中的數(shù)據(jù)推送的CAN總線上的能力。 此芯片有3種不同的工作方式:高速模式、斜率控制模式、和待機(jī)模式。 PCA82C250管腳圖,我采用的PCA82C250是SOIC貼片封裝,工作溫度從零下40攝氏度到125攝氏度,工作范圍廣,電源電流為100μA功耗低,發(fā)熱控制好。本系統(tǒng)接在SJA1000的第13腳TX0口。第三管腳是電壓電源VCC接直流電源5V。第五管腳Vref是參考電壓輸出端,因?yàn)楸鞠到y(tǒng)所參與的上位機(jī)沒有參考電壓輸入端,所以我把這個(gè)管腳懸空。是本系統(tǒng)與CAN總線的主要接口。是本系統(tǒng)與CAN總線的主要接口。PCA82C50 是CAN 協(xié)議控制器和物理總線間的接口,它主要是為汽車中高速通訊(高達(dá)1Mbps)應(yīng)用而設(shè)計(jì)。一個(gè)限流電路可防止發(fā)送輸出級(jí)對(duì)電池電壓的正端和負(fù)端短路。在節(jié)點(diǎn)溫度大約超過160℃時(shí),兩個(gè)發(fā)送器輸出端的極限電流將減少。IC 的其他所有部分將繼續(xù)工作。CANH、CANL 兩條線也防止在汽車環(huán)境下可能發(fā)生的電氣瞬變現(xiàn)象。在本系統(tǒng)中,采用的是由美國的兩家公司聯(lián)合出品的ULN2003A芯片。ULN200ULN280系列產(chǎn)品就是為了這類大功率用電器而推出的,由于這類電器件功能強(qiáng)大,市場銷量好。 輸入脈沖占空比與輸出路數(shù)和輸出電流的關(guān)系曲線ULN2003A型芯片的輸入脈沖占空比、,從圖中可以了解到,最大的輸出電流隨著輸入脈沖的占空比以及輸出路數(shù)的增加而降低,所以:占用過多的通道會(huì)使芯片的驅(qū)動(dòng)電流和驅(qū)動(dòng)電壓減小。 步進(jìn)電機(jī) MITSUMI公司的M35SP7型步進(jìn)電機(jī)本系統(tǒng)的執(zhí)行機(jī)構(gòu)采用執(zhí)行機(jī)構(gòu)的是MITSUMI公司的M35SP7型步進(jìn)電機(jī),它具有尺寸小扭矩高,穩(wěn)定性好,精度高,相應(yīng)速度快等優(yōu)點(diǎn)。7%步進(jìn)角176。m失步轉(zhuǎn)矩:步進(jìn)電機(jī)的相數(shù)也就是定子繞組的數(shù)量,一般有二相,三相,四相,五相等。步進(jìn)角是步進(jìn)電機(jī)的固有參數(shù),即使我們使用好的細(xì)分驅(qū)動(dòng)器,也不可以改變步進(jìn)角這個(gè)參數(shù)。細(xì)分驅(qū)動(dòng)器是根據(jù)對(duì)電流大小的細(xì)分來達(dá)到步數(shù)的細(xì)分,會(huì)受到許多外在和內(nèi)在因素的影響,實(shí)際的效果并不好。2. 步進(jìn)電機(jī)的步距角:它表示控制系統(tǒng)每次發(fā)出一個(gè)點(diǎn)脈沖信號(hào),步進(jìn)電機(jī)轉(zhuǎn)子所轉(zhuǎn)動(dòng)的角度。 3. 步進(jìn)電機(jī)的保持轉(zhuǎn)矩:步進(jìn)電機(jī)的保持轉(zhuǎn)矩指的是步進(jìn)電機(jī)通電但沒有驅(qū)動(dòng)脈沖變化運(yùn)動(dòng)時(shí),步進(jìn)電機(jī)的轉(zhuǎn)子和定子間的力矩。一般來說,步進(jìn)電機(jī)在低速運(yùn)行時(shí)的轉(zhuǎn)動(dòng)力矩接近于保持轉(zhuǎn)矩。例如,當(dāng)技術(shù)人員說7NM的步進(jìn)電機(jī),一般情況下說的都是保持轉(zhuǎn)矩是7Nm的步進(jìn)電機(jī)。有些步進(jìn)電機(jī)的轉(zhuǎn)子是電磁鐵材料,所以它無制動(dòng)轉(zhuǎn)矩這個(gè)參數(shù)。 步進(jìn)電機(jī)在調(diào)速范圍較大時(shí),步進(jìn)電機(jī)的功率是變化的,實(shí)際生產(chǎn)中一般采用力矩來衡量。步進(jìn)電機(jī)一般用在打印機(jī),多功能一體機(jī),復(fù)印機(jī),傳真機(jī)等,具有高精度,快速相應(yīng)等特點(diǎn)的系統(tǒng)上。因?yàn)榘l(fā)光二極管反向耐壓只有5伏。:…………………………………………………………………()式中E為電源正電壓,UF為發(fā)光二級(jí)管的工作電壓,IF為發(fā)光二級(jí)管的額定電流。長的一端應(yīng)該連接電源的正極。發(fā)光二級(jí)管與小燈泡和氖氣燈相比較,發(fā)光二級(jí)管的優(yōu)點(diǎn)是:工作電壓低,工作電流小,功耗小,穩(wěn)定性好,衰老時(shí)間長;通過調(diào)節(jié)電流的大小就可以方便地改變LED發(fā)光的強(qiáng)弱。在本電路中,電流為3mA。4 基于CAN總線的步進(jìn)電機(jī)控制系統(tǒng)軟件設(shè)計(jì)基于CAN總線的步進(jìn)電機(jī)控制系統(tǒng)軟件設(shè)計(jì)主要分為SJA1000驅(qū)動(dòng)部分和步進(jìn)電機(jī)驅(qū)動(dòng)部分兩大塊,其中步進(jìn)電機(jī)驅(qū)動(dòng)部分是主體,是單片機(jī)一直運(yùn)行的函數(shù),完成了對(duì)步進(jìn)電機(jī)的基本運(yùn)動(dòng)控制,其中包含了正轉(zhuǎn),反轉(zhuǎn)和停止共九級(jí)調(diào)速。步進(jìn)電機(jī)調(diào)速指示燈驅(qū)動(dòng),步進(jìn)電機(jī)速度等級(jí)發(fā)送等功能包含在其他子程序中,這些功能模塊的設(shè)計(jì)會(huì)在本章后半段詳細(xì)講解。若初始化成功進(jìn)入CAN總線初始化模塊,此模塊主要包括對(duì)SJA1000芯片的初始化,對(duì)其與單片機(jī)相連接的一些管腳進(jìn)行初始化設(shè)置,保證初始化完成。 單片機(jī)初始化系統(tǒng)上電后,單片機(jī)首先對(duì)自己進(jìn)行初始化,為后續(xù)程序做鋪墊。復(fù)位操作后,為了與SJA1000通訊,所以要選中SJA1000芯片,故而拉低SJA_CS腳。 SJA_RST = 0。 //延時(shí) SJA_RST = 1。 SJA_CS = 0。 //外部中斷1使能;CAN總線接收中斷 IT1 = 0。 //打開總中斷 CAN初始化模塊在單片機(jī)初始化完成后,隨著程序的執(zhí)行,就進(jìn)入了CAN初始化模塊,由于本系統(tǒng)采用了新型的CAN總線獨(dú)立控制器SJA1000,所以對(duì)CAN的初始化都是圍繞著SJA1000完成的。 CAN總線發(fā)送模塊本系統(tǒng)的發(fā)送過程很簡潔,在確定芯片沒有發(fā)送報(bào)文,且發(fā)送緩沖區(qū)為空時(shí),發(fā)送的程序只需要將需要發(fā)送的數(shù)據(jù)按照特殊的格式組合成一組報(bào)文,送人SJA1000的發(fā)送緩沖區(qū)里,然后控制SJA1000芯片發(fā)送即可,發(fā)送的數(shù)據(jù)分為遠(yuǎn)程幀和數(shù)據(jù)幀,本系統(tǒng)只用到了數(shù)據(jù)幀。 unchar data state。 //這個(gè)臨時(shí)變量是用于id處理的 tx_buffer[0] = 0x81。 tx_buffer[1] = 0x00。 //高16位沒有用,默認(rèn)為0 tx_buffer[3] = (unchar)(tmp8)。tx_buffer[5] = txdata。 } while(state amp。 do //確保sja1000,不是處于發(fā)送數(shù)據(jù)的狀態(tài) { state = SJA_SR。 TS_BIT)。 } while(!(state amp。 //=0,發(fā)送緩沖器被鎖。 SJA_TBSR1 = tx_buffer[1]。 SJA_TBSR3 = tx_buffer[3]。 SJA_TBSR5 = tx_buffer[5]。 //開始芯片發(fā)送數(shù)據(jù)}4,6 CAN總線接收模塊CAN數(shù)據(jù)的接收是通過外部中斷1來實(shí)現(xiàn)的,首先,當(dāng)SJA1000芯片接收到了數(shù)據(jù),然后通過電路向單片機(jī)發(fā)出中斷請(qǐng)求,單片機(jī)根據(jù)中斷優(yōu)先級(jí),執(zhí)行各個(gè)中斷的操作,當(dāng)單片機(jī)執(zhí)行到外部中斷1的附帶操作時(shí),單片機(jī)首先關(guān)閉總中斷,防止中斷嵌套,破壞操作時(shí)序,然后讀出SJA1000芯片的中斷寄存器的內(nèi)容確定是那種中斷,如果是數(shù)據(jù)中斷,單片機(jī)讀取SJA1000的緩沖區(qū)的內(nèi)容,送入數(shù)組rx_buffer[6]中,接收到數(shù)據(jù)后,釋放SJA1000的緩沖區(qū)、仲裁實(shí)時(shí)捕捉寄存器和錯(cuò)誤代碼捕獲寄存器。void SJA_RX(void) interrupt 2 //51外部中斷1{ unchar rx_buffer[6]。 EA = 0。 //讀出中斷寄存器的內(nèi)容,以確定產(chǎn)生哪種中斷 //確定是因?yàn)榻邮諗?shù)據(jù)產(chǎn)生的中斷,并將數(shù)據(jù)送往局部數(shù)組rx_buffer if(state amp。 rx_buffer[1] = SJA_RBSR1。 rx_buffer[3] = SJA_RBSR3。 rx_buffer[5] = SJA_RBSR5。//接收到數(shù)據(jù)后,釋放接收緩沖區(qū) state = SJA_ALC。//釋放錯(cuò)誤代碼捕捉寄存器 dispy = rx_buffer[5]。//給出標(biāo)志,表示收到了數(shù)據(jù) EA = 1。步進(jìn)電機(jī)調(diào)速模塊是單片機(jī)一直運(yùn)行的程序,當(dāng)接收外部中斷0的請(qǐng)求后,單片機(jī)更新DISPLAY數(shù)據(jù),根據(jù)特定的值調(diào)節(jié)脈沖的頻率,從而達(dá)到步進(jìn)電機(jī)分檔調(diào)速的目的,當(dāng)DISPLAY不是特定的值時(shí),步進(jìn)電機(jī)進(jìn)入停止檔位。5 試驗(yàn)及其結(jié)果分析由于采用手工焊接電路,存在焊錯(cuò)的可能,所以需要一步一步的檢測和調(diào)試。其次,再取下STC89C52RC芯片和CAN模塊的情況下,進(jìn)行上電測試。 表示不符合預(yù)期結(jié)果據(jù)統(tǒng)計(jì),在單片機(jī)最小系統(tǒng)工作不正常很多都是因?yàn)闆]有接接電源或者焊接錯(cuò)誤,所以我第一部測試的就是電源,結(jié)果讓人滿意。 如果說系統(tǒng)的硬件相當(dāng)于一個(gè)人的軀體,系統(tǒng)的軟件就是人的靈魂,由于本系統(tǒng)的軟件采用的是模塊化編程,所以軟件測試需要逐步進(jìn)行,為了測試CAN總線模塊,測試方法如下,計(jì)算機(jī)先發(fā)送一個(gè)數(shù)據(jù),ID為0(下位機(jī)ID為5),單片機(jī)應(yīng)為無反應(yīng),如果有返回值,正面SJA1000的驅(qū)動(dòng)函數(shù)有問題,沒有篩選出ID,如果單片機(jī)無反應(yīng)則正常。6 總結(jié)與展望畢業(yè)設(shè)計(jì)是我在大學(xué)學(xué)習(xí)期間最后的一個(gè)教學(xué)活動(dòng)。作為一個(gè)即將進(jìn)入社會(huì)的大學(xué)生,為了應(yīng)對(duì)以后工作中,生活中的挑戰(zhàn),我在選題之初就考慮選一個(gè)軟件、硬件結(jié)合的課題。經(jīng)過這次畢業(yè)設(shè)計(jì)的訓(xùn)練,我接觸到了更多的本專業(yè)的相關(guān)知識(shí),為即將到來的工作生活進(jìn)行了一些知識(shí)儲(chǔ)備,因此,在我即將離校走上工作崗位之前,它是一次重要的演練?;贑AN總線的步進(jìn)電機(jī)控制系統(tǒng)設(shè)計(jì)是自動(dòng)化控制的一個(gè)較好的切入點(diǎn)。而且無刷直流電機(jī)的各種優(yōu)點(diǎn)也越來越被重視,在當(dāng)今國民經(jīng)濟(jì)的各個(gè)領(lǐng)域,如化工、醫(yī)療器械以及家用電器等方面都得到了廣泛的應(yīng)用。void SJA_TX(uint id,uchar txdata)。//SJA1000復(fù)位管腳sbit SJA_CS = P2^0。//低電平有效 硬件測試用sbit L1 = P1^0。sbit L3 = P1^2。sbit L5 = P1^4。sbit L7 = P1^6。extern canid。unint dispy。 //反轉(zhuǎn) AABBBCCCDDDA (即一個(gè)脈沖,轉(zhuǎn) 度)unsigned char code FFZ[8]= {0x68,0x78,0x38,0xb8,0x98,0xd8,0xc8,0xe8}。//初值為0,當(dāng)為100時(shí),表示定時(shí)器0計(jì)數(shù)到1秒了,這時(shí)就自動(dòng)發(fā)一次數(shù)據(jù)unchar rxflag=0。 //單片機(jī)初始化void init_delay10ms (void)。void delay(unsigned int t)。 mcu_init()。 init_delay10ms()。//打開定時(shí)器0,開始計(jì)數(shù) while(1) { for (i=0。 i++) //一個(gè)周期轉(zhuǎn)30度 { P1=0。 //取數(shù)據(jù) L1=1。 } else if(dispy==2) { P2 = FFZ[i]。 delay(30)。 //取數(shù)據(jù) L3=1。 } else if(dispy==4) { P2 = FFZ[i]。 delay(20)。 //取數(shù)據(jù) L5=1。 } else if(dispy==6) { P2 = FFZ[i]。 delay(10)。 //取數(shù)據(jù) L7=1。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
數(shù)學(xué)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1