usb工控系統(tǒng),怎樣防止單片機(jī)程序走飛或者375異常

想用375+單片機(jī)用于工控采集和控制,由于是無(wú)人值守的,要求比較高,怎樣防止程序走飛,或者375自身的出錯(cuò)? 原來(lái)是用的isa總線的卡做輸入輸出的,現(xiàn)在isa總線的主板幾乎無(wú)處可尋,除非用貴得要死的工控機(jī),所以想改成usb總線的,這樣就算是筆記本也能用。本來(lái)考慮用341芯片的,但由于保密性不佳,容易被他人復(fù)制(已經(jīng)吃過(guò)苦頭了,郁悶),所以想用375+單片機(jī)的方案,單片機(jī)用來(lái)采集和輸出數(shù)據(jù),并通過(guò)375芯片和pc機(jī)通訊。由于單片機(jī)可以用89c51一類的保密芯片,單片機(jī)里面的程序不容易被復(fù)制,再加上單片機(jī)同時(shí)可以對(duì)輸入輸出的數(shù)據(jù)做編碼譯碼工作,這樣就可以大大增加復(fù)制的難度。 問(wèn)題是現(xiàn)在擔(dān)心單片機(jī)程序會(huì)走飛,375本身也會(huì)出錯(cuò),有什么辦法解決嗎? 以前只用單片機(jī)的時(shí)候,采取的是用rc電路定時(shí)復(fù)位單片機(jī),單片機(jī)復(fù)位后采集并通過(guò)計(jì)算后輸出數(shù)據(jù),然后就閑置等待,直到下一個(gè)硬件復(fù)位信號(hào)來(lái)后從頭再做,這樣就可以保證單片機(jī)可靠的工作。 現(xiàn)在的問(wèn)題如下: 1。 pc機(jī)主動(dòng),能不能通過(guò)pc機(jī)程序?qū)纹瑱C(jī)復(fù)位? pc機(jī)可以定時(shí)對(duì)375進(jìn)行復(fù)位,375可以通過(guò)rst腳同時(shí)讓單片機(jī)復(fù)位,但這樣有很多問(wèn)題,一旦pc機(jī)對(duì)375復(fù)位后,pc機(jī)和375的連接就斷掉了,375如果不設(shè)置工作模式,pc機(jī)是認(rèn)不出來(lái)的。就算經(jīng)過(guò)設(shè)置工作模式后pc機(jī)又可以認(rèn)出設(shè)備,那樣的話豈不是設(shè)備一直再不停的插拔,應(yīng)該行不通吧? 有沒(méi)有一個(gè)辦法,通過(guò)pc機(jī)直接控制單片機(jī)復(fù)位,而不讓375復(fù)位?這樣單片機(jī)就可以通過(guò)程序,判斷是否是第一次上電復(fù)位,從而設(shè)置375的工作模式(如果多次設(shè)置同樣的工作模式,pc機(jī)會(huì)檢測(cè)到設(shè)備插拔嗎?如果不會(huì)的話,單片機(jī)程序還可以簡(jiǎn)單點(diǎn),我只要用內(nèi)置固件模式就足夠了)。或者說(shuō),有沒(méi)有不通過(guò)單片機(jī)而像341一樣硬件連接的方法設(shè)置工作模式?這樣就不必每次都通過(guò)程序設(shè)置了,只要單片機(jī)一復(fù)位馬上可以通訊。 為了保證375可靠的工作,是否可以讓單片機(jī)定時(shí)的用CMD_CHECK_EXIST命令檢查375是否正常,如果不正常就復(fù)位375?(有個(gè)問(wèn)題,例子程序用如果不正常,要80次復(fù)位,是為什么呢?是不是多次CMD_RESET_ALL后就相當(dāng)于上電硬件復(fù)位?如果不是多次CMD_RESET_ALL,就是軟復(fù)位?) 2。 單片機(jī)主動(dòng) 如果采取單片機(jī)主動(dòng)的形式,單片機(jī)定時(shí)硬件復(fù)位,復(fù)位后檢查375是否正常工作,如果不正常就復(fù)位375,如果正常就設(shè)置工作狀態(tài)(多次設(shè)置會(huì)不會(huì)有問(wèn)題?)。然后采集數(shù)據(jù),送到pc機(jī),pc機(jī)收到數(shù)據(jù)后處理,進(jìn)行計(jì)算后輸出,單片機(jī)收到數(shù)據(jù)后,處理并輸出給外設(shè),然后閑置等待下一個(gè)硬件復(fù)位信號(hào)。 還有一個(gè)問(wèn)題,如果pc機(jī)端程序開(kāi)著,單片機(jī)檢測(cè)到375工作不正常,將375復(fù)位后重新設(shè)置工作模式,pc機(jī)這邊的程序是否還能繼續(xù)正常工作?是否需要重新啟動(dòng)軟件?

希望版主及各位大俠多多指點(diǎn)

現(xiàn)在高級(jí)一點(diǎn)的單片機(jī)都有看門狗,你可以考慮


如果用像89s51的單片機(jī),使用內(nèi)置的看門狗,程序走飛正好走到 Mov 0A6H,#01EH ;先送1E Mov 0A6H,#0E1H ;后送E1 這兩句,不就等于是喂狗了嗎?是不是這樣的幾率微乎其微? 另外,如果程序走飛,單片機(jī)被看門狗復(fù)位后,需要重新設(shè)置375的工作模式,或者如果單片機(jī)檢測(cè)到375工作不正常,將其復(fù)位后再重新設(shè)置工作模式,pc機(jī)軟件那里的連接會(huì)不會(huì)斷掉?是否需要重新啟動(dòng)軟件?

看了評(píng)估板的程序,程序里用CMD_CHECK_EXIST命令檢查375是否正常,如果不正常就復(fù)位375,居然要80次復(fù)位,是為什么呢?和只發(fā)一次或者少數(shù)幾次CMD_RESET_ALL命令有什么區(qū)別?如果375的RST引腳接在51單片機(jī)的RSTI上,是不是單片機(jī)發(fā)出CMD_RESET_ALL命令后,自己同時(shí)也會(huì)被復(fù)位?


這個(gè)重復(fù)發(fā)送隨便發(fā)送幾次都是可以的,少幾次沒(méi)什么問(wèn)題,這邊做的目的就是檢測(cè)375是否工作正常(前提就是你前面的測(cè)試命令是正常的,如果第一次做測(cè)試命令都不正常的話,那就要檢查你的硬件連線是否有問(wèn)題)如果這樣連接的話,單片機(jī)也會(huì)復(fù)位掉


如果程序走飛,單片機(jī)被看門狗復(fù)位后,需要重新設(shè)置375的工作模式,或者如果單片機(jī)檢測(cè)到375工作不正常,將其復(fù)位后再重新設(shè)置工作模式,pc機(jī)軟件那里的連接會(huì)不會(huì)斷掉?是否需要重新啟動(dòng)軟件?


PC機(jī)那邊會(huì)檢測(cè)到設(shè)備的拔出,當(dāng)設(shè)備插上來(lái)之后你在打開(kāi)設(shè)備就可以了


也就是說(shuō),設(shè)備拔出并重新插入后(復(fù)位,重新設(shè)置工作模式后),軟件那里就不能正常工作了?必須重新調(diào)用opendevice函數(shù)?那如果是無(wú)人值守的系統(tǒng),豈不是出了錯(cuò)就不能自動(dòng)恢復(fù)了? 如果程序走飛,單片機(jī)被復(fù)位,那么復(fù)位后需要重新設(shè)置工作模式(比如原來(lái)是內(nèi)置固件,現(xiàn)在還是內(nèi)置固件不變),那么會(huì)不會(huì)造成pc端檢測(cè)到設(shè)備的插拔? 因?yàn)槲业南到y(tǒng)需要長(zhǎng)時(shí)間穩(wěn)定的工作,請(qǐng)問(wèn)375芯片的穩(wěn)定性如何?會(huì)不會(huì)經(jīng)過(guò)一段時(shí)間的運(yùn)行后出現(xiàn)不正常而必須復(fù)位? 另外,375芯片的工作模式有沒(méi)有可能通過(guò)硬件的方式設(shè)定(就像341一樣用硬件連接解決)?這樣如果程序走飛而375工作正常的話,單片機(jī)復(fù)位后就不需要設(shè)置工作模式了,pc機(jī)端就不會(huì)檢測(cè)到設(shè)備插拔了。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频