想用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)