當(dāng)前位置: 首頁 > 工業(yè)電氣產(chǎn)品 > 工業(yè)繼電器 > 智能繼電器
發(fā)布日期:2022-10-09 點(diǎn)擊率:159
濾波器、中斷使能寄存器、總線定時(shí)器和輸出控制器。完成這些寄存器的配置后,就要退出復(fù)位模式,進(jìn)入工作模式。它的初始化流程圖如圖2所示。
2 報(bào)文的收發(fā)處理
對SJA1000的操作通常有2種方案,一種是時(shí)序模擬模式;另一種便是用擴(kuò)展RAM的模式來完成。該控制器通常有2種讀寫模式,一種是Intel模式;另一種是Motorola模式,由于它的管腳設(shè)置和普通的RAM管腳設(shè)置相似,因此文中采用擴(kuò)展RAM 的模式來實(shí)現(xiàn)總線的報(bào)文收發(fā)。總線繼電器的報(bào)文的處理包括2部分,即數(shù)據(jù)的接收處理,報(bào)文的發(fā)送處理。
2.1 報(bào)文的接收
報(bào)文的接收是由該控制器自動(dòng)完成,文中要做的就是要把信息從接收緩存中讀出來,然后將讀出來的信息存放在數(shù)據(jù)存儲器中。一條數(shù)據(jù)報(bào)文能否被成功地接收由驗(yàn)收濾波器模式控制位、驗(yàn)收代碼寄存器、驗(yàn)收代碼屏蔽寄存器、報(bào)文標(biāo)識符共同決定。只有通過驗(yàn)收濾波器的過濾的報(bào)文才能被接收,否則是不能送到控制器接收緩沖區(qū)的。當(dāng)報(bào)文成功通過驗(yàn)收濾波器并被送入接收緩沖中后,會(huì)置位接收緩沖區(qū)狀態(tài)位,如果這個(gè)時(shí)候使能接收中斷RIE,就會(huì)產(chǎn)生接收中斷,使得控制器的INT的電平發(fā)生變化,此時(shí)中斷微控制器。接下來微處理器的任務(wù)大致由下面三步分組成,首先要監(jiān)視控制器的狀態(tài),確定一下是否有需要讀取的報(bào)文;其次便是將接收緩沖區(qū)中的數(shù)據(jù)讀出來存放到數(shù)據(jù)存儲器中并需要置位接收處理標(biāo)志;最后便是處理接收到的報(bào)文。需要注意的是處理接收報(bào)文的目的主要是為驅(qū)動(dòng)繼電器做準(zhǔn)備。
2.2 報(bào)文的發(fā)送
報(bào)文的發(fā)送負(fù)責(zé)將待發(fā)數(shù)據(jù)發(fā)到總線上。第一屏蔽相關(guān)中斷,避免收到的數(shù)據(jù)對發(fā)送的影響;第二要對和報(bào)文發(fā)送相關(guān)的數(shù)據(jù)寄存器進(jìn)行設(shè)置,確定通信的目標(biāo)節(jié)點(diǎn),同時(shí)準(zhǔn)備好要發(fā)送的數(shù)據(jù);第三在發(fā)送之前要對SJA1000發(fā)送緩沖區(qū)是否有待發(fā)送的數(shù)據(jù)進(jìn)行檢查,如果沒有待發(fā)送的數(shù)據(jù)或者正在發(fā)送的數(shù)據(jù),則可以將準(zhǔn)備好的數(shù)據(jù)發(fā)送到控制器發(fā)送緩沖區(qū)做好發(fā)送準(zhǔn)備,否則新的報(bào)文是不能寫入發(fā)送緩沖區(qū)的;第四就是把要發(fā)送的報(bào)文寫入控制器發(fā)送緩沖區(qū),準(zhǔn)備發(fā)送;第五就是置位發(fā)送請求標(biāo)志位,之后控制器會(huì)自動(dòng)完成報(bào)文的發(fā)送。信息的發(fā)送流程圖如圖4所示。
3 電流信號的數(shù)據(jù)采集
系統(tǒng)電流信號的采集,文中采用的是美國國家半導(dǎo)體生產(chǎn)的8位分辨率、雙通道A/D轉(zhuǎn)換芯片。文中之所以使用該款芯片,主要是考慮到它的體積較小、兼容性強(qiáng)、性價(jià)比高,更為重要的是它的數(shù)據(jù)是串行輸出,節(jié)約了單片機(jī)的管腳資源。
一般情況下,和單片通信的管腳由以下4個(gè):片選端CS、時(shí)鐘輸入端CLK、數(shù)據(jù)輸出端DO、模式選擇輸入端DI。通過對時(shí)序圖的分析發(fā)現(xiàn),DI和DO不是始終同時(shí)有效,因此在設(shè)計(jì)電路時(shí),可以將此二管腳并接到一起作為一個(gè)管腳連接到單片機(jī)上。ADC轉(zhuǎn)換流程大致如下。首先是使能選中芯片,即要拉低片選CS,并且要保持該電平到轉(zhuǎn)換完畢,因?yàn)楫?dāng)CS置位的時(shí)候,該芯片是不能使用的;其次是要發(fā)送一個(gè)起始信號,這就需要在第一個(gè)時(shí)鐘的下降沿到來之前拉高DI;再次是要輸入通道選擇控制字進(jìn)行轉(zhuǎn)換通道選擇,通道控制的選擇需要在接下來第2、3個(gè)脈沖下降沿來臨之前輸入兩位數(shù)據(jù)文中先后對DI輸入1,0;最后是從DO端輸出AD轉(zhuǎn)換結(jié)果,即在先在第4時(shí)鐘下降沿到第11個(gè)時(shí)鐘下降沿之間的每一個(gè)下降沿都會(huì)輸出 A/D轉(zhuǎn)換結(jié)果,高位在前,共8位,接下來在從第11個(gè)時(shí)鐘下降沿到第19個(gè)時(shí)鐘下降沿的每個(gè)時(shí)鐘下降沿又一次
輸出和之前相反的數(shù)據(jù),也是8位,只是這個(gè)時(shí)候是低位在前;最后便是拉高CS,禁止使能A/D轉(zhuǎn)換,對該2個(gè)8位數(shù)據(jù)進(jìn)行比對,將轉(zhuǎn)換結(jié)果送到數(shù)據(jù)寄存器中。圖5是ADC轉(zhuǎn)換的流程圖。
4 看門狗MAX813L
在單片機(jī)構(gòu)成的系統(tǒng)當(dāng)中,單片機(jī)的工作往往會(huì)受到來自外界干擾,導(dǎo)致程序陷入死循環(huán),進(jìn)而使得單片機(jī)無法正常工作,單片機(jī)的手動(dòng)復(fù)位又有其局限性,為此文中采用專門監(jiān)測單片機(jī)運(yùn)行狀態(tài)的芯片MAX813L。該芯片不僅能實(shí)現(xiàn)系統(tǒng)復(fù)位,還可以監(jiān)測電源狀態(tài),當(dāng)出現(xiàn)掉電或者低壓等情況時(shí)保護(hù)重要數(shù)據(jù)。
4.1 系統(tǒng)復(fù)位
當(dāng)系統(tǒng)受到某些干擾的影響,使得系統(tǒng)程序跑飛,當(dāng)該芯片的看門狗信號輸入端WDI在超過1.6 s時(shí)間內(nèi)得不到清除定時(shí)器的脈沖時(shí),看門狗輸出管腳WDO將由高電平變?yōu)榈碗娖剑鶕?jù)圖6會(huì)發(fā)現(xiàn),復(fù)位輸入端MR會(huì)被拉低成低電平,當(dāng)這個(gè)低電平保持時(shí)間在140 ms以上時(shí),復(fù)位信號輸出端RST會(huì)復(fù)位信號,從而復(fù)位CPU。根據(jù)前面分析,系統(tǒng)的正常運(yùn)行需要最多以1.6 s的時(shí)間間隔給看門狗輸入端輸入脈沖。文中使用定時(shí)器0的工作方式1每隔50 ms給看門狗芯片一個(gè)清定時(shí)器脈沖。喂狗的實(shí)現(xiàn)代碼如圖7所示。
4.2 電源監(jiān)視
當(dāng)電源故障輸入管腳的電位低于1.25 V時(shí),電源故障輸出端的電平會(huì)由高變低,導(dǎo)致微處理器P32管腳的電平發(fā)生變化,進(jìn)而觸發(fā)外部中斷0,執(zhí)行中斷服務(wù)程序,即凍結(jié)寄存器的內(nèi)容,保存RAM 中的數(shù)據(jù),激活掉電模式,進(jìn)入掉電工作狀態(tài)。要想退出掉電模式,系統(tǒng)必須復(fù)位。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV