本發(fā)明涉及一種解決多主沖突的電路,具體涉及一種RS485線路選擇器電路。
背景技術(shù):
RS-485總線作為一種多節(jié)點(diǎn)、半雙工、差分?jǐn)?shù)據(jù)傳輸?shù)耐ㄓ嵎绞?,由于其具有長距離傳輸、良好的共模干擾抑制的特點(diǎn),廣泛應(yīng)用于各類集抄系統(tǒng)中。在部分應(yīng)用場合中,總線中可能存在多個(gè)主機(jī),當(dāng)多主通信時(shí),一定會(huì)產(chǎn)生沖突干擾?,F(xiàn)存的解決方式一般有兩種:一是通過時(shí)分復(fù)用的方法,不同的主機(jī)被劃分到不同的時(shí)間片上;二是通過沖突檢測-避讓算法,多個(gè)主機(jī)通過算法占用不同的時(shí)間片。以上兩種解決方法都是通過軟件的方式來解決多主沖突,并沒有從根本上解決沖突問題。
技術(shù)實(shí)現(xiàn)要素:
針對上述問題,本發(fā)明提供一種通過硬件的方式來解決485總線中的多主沖突,結(jié)構(gòu)簡單可靠的RS485線路選擇器電路。
為解決上述問題,本發(fā)明采取的技術(shù)方案為:一種RS485線路選擇器電路,包括用于檢測主機(jī)I發(fā)出的485信號的信號檢測電路、自動(dòng)延時(shí)電路和線路切換執(zhí)行電路;主機(jī)I的RS485端子接入信號檢測電路的輸入端,信號檢測電路輸出端輸出觸發(fā)信號;觸發(fā)信號接入自動(dòng)延時(shí)電路的輸入端,自動(dòng)延時(shí)電路的輸出端輸出驅(qū)動(dòng)信號,驅(qū)動(dòng)信號接入線路切換執(zhí)行電路的輸入端,線路切換執(zhí)行電路的輸出端控制表計(jì)RS485端子在主機(jī)I的RS485端子和主機(jī)II的RS485端子之間選擇連接。
當(dāng)RS485總線的主機(jī)I需要通信時(shí),將主機(jī)I的RS485端子與表計(jì)485端子相連;否則將主機(jī)II RS485端子與表計(jì)485端子相連。
信號檢測電路負(fù)責(zé)檢測主機(jī)I發(fā)出的485信號,并為自動(dòng)延時(shí)電路產(chǎn)生觸發(fā)信號。
自動(dòng)延時(shí)電路收到信號檢測電路的觸發(fā)信號后,立即驅(qū)動(dòng)線路切換執(zhí)行電路,并開始計(jì)時(shí),當(dāng)?shù)竭_(dá)指定的延時(shí)后,取消驅(qū)動(dòng)信號。
線路切換電路收到驅(qū)動(dòng)信號后,將主機(jī)I的RS485端子與表計(jì)485端子短接;未收到驅(qū)動(dòng)信號時(shí),將主機(jī)II的RS 485端子與表計(jì)485端子短接。
所述的信號檢測電路是這樣的:主機(jī)I的第一RS485端子和第二RS485端子分別接至無極性485芯片的B引腳和A引腳;無極性485芯片的B引腳經(jīng)第一電阻接地、無極性485芯片的A引腳經(jīng)第二電阻接電源;無極性485芯片收發(fā)控制腳、發(fā)送腳均接地,接收腳經(jīng)第四電阻接第一三極管的基極,第一三極管發(fā)射極接地,第一三極管的集電極經(jīng)第三電阻上拉到電源,第一三極管的集電極與第一MOS管的柵極相連,第一MOS管的源極接地,第一MOS管的漏極輸出觸發(fā)信號。此處采用無極性485芯片檢測485信號,對于485極性無要求,減少了現(xiàn)場的施工工作量。
所述的自動(dòng)延時(shí)電路是這樣的:第五電阻一端接電源,一端經(jīng)第六電阻接地,第五電阻和第六電阻的連接處接至運(yùn)算放大器的反相輸入端,觸發(fā)信號接至運(yùn)算放大器的同相輸入端,運(yùn)算放大器的同相輸入端接有由第七電阻與第一電容組成阻容充電電路;運(yùn)算放大器的輸出端經(jīng)第八電阻連到第二三極管的基極,第二三極管的發(fā)射極接地,第二三極管的集電極輸出驅(qū)動(dòng)信號。
所述的線路切換執(zhí)行電路是這樣的:驅(qū)動(dòng)信號經(jīng)第九電阻上拉到電源并經(jīng)第十電阻連到第三三極管的基極,第三三極管的發(fā)射極接地,第三三極管的集電極經(jīng)第十一電阻連到光耦繼電器的初級發(fā)光二極管的負(fù)極,初級發(fā)光二極管的正極接電源,主機(jī)I的第一RS485端子和第二第一RS485端子接到光耦繼電器的常開端子上,主機(jī)II的第一RS485端子和第二第一RS485端子接到光耦繼電器的常閉端子上,表計(jì)RS485端子接到光耦繼電器的公共端子上。此處采用光耦繼電器作為動(dòng)作器件,提高了切換的實(shí)時(shí)性、可靠性。
無極性485芯片的A引腳和B引腳均經(jīng)瞬間抑制二極管接地且無極性485芯片的B引腳經(jīng)熱敏電阻接主機(jī)I的第一RS485端子。瞬間抑制二極管和熱敏電阻組成總線的保護(hù)電路,為總線提供過壓、過流保護(hù)。
本發(fā)明提出一種485線路選擇器電路,通過硬件的方式來解決485總線存在多個(gè)主機(jī)的問題,并提供了優(yōu)先級,高優(yōu)先級的主機(jī)可以打斷低優(yōu)先級的主機(jī)進(jìn)行通信,通信完成后自動(dòng)釋放總線。本發(fā)明具有結(jié)構(gòu)簡單可靠、自動(dòng)化程度高、自動(dòng)分割總線、按優(yōu)選級選擇總線主機(jī)等優(yōu)點(diǎn)。
附圖說明
圖1為信號檢測電路原理圖;
圖2為自動(dòng)延時(shí)電路原理圖;
圖3為線路切換執(zhí)行電路原理圖;
具體實(shí)施方式
一種RS485線路選擇器電路,包括用于檢測主機(jī)I發(fā)出的485信號的信號檢測電路、自動(dòng)延時(shí)電路和線路切換執(zhí)行電路;
如圖1所示,所述的信號檢測電路是這樣的:主機(jī)I的第一RS485端子RS485I_B經(jīng)熱敏電阻接無極性485芯片U1的B引腳,主機(jī)I的第二RS485端子RS485I_A分別接至無極性485芯片U1的A引腳;無極性485芯片U1的B引腳經(jīng)第一電阻R1、第一瞬間抑制二極管TVS1接地;無極性485芯片U1的A引腳經(jīng)第二電阻R2接電源VDD,同時(shí)經(jīng)第二瞬間抑制二極管TVS2接地;無極性485芯片U1收發(fā)控制腳、發(fā)送腳均接地,使無極性485芯片U1始終處于接收狀態(tài)。接收腳經(jīng)第四電阻R4接第一三極管Q1的基極,第一三極管Q1發(fā)射極接地,第一三極管Q1的集電極經(jīng)第三電阻R3上拉到電源VDD,第一三極管Q1的集電極與第一MOS管M1的柵極相連,第一MOS管M1的源極接地,第一MOS管M1的漏極輸出觸發(fā)信號RS485_T。
當(dāng)主機(jī)I的RS485端子發(fā)送數(shù)據(jù)時(shí),首先要發(fā)送一位低電平的起始位,無極性485芯片U1的接收腳為低電平,經(jīng)第一三極管Q1反相,第一MOS管M1的柵極為高電平,第一MOS管M1處于導(dǎo)通狀態(tài),因此觸發(fā)信號RS485_T為低電平。反之,當(dāng)主機(jī)I的RS485端子不發(fā)送數(shù)據(jù)時(shí),無極性485芯片U1的接收腳為高電平,經(jīng)第一三極管Q1反相,第一MOS管M1的柵極為低電平,第一MOS管M1處于截止?fàn)顟B(tài),因此觸發(fā)信號RS485_T為高阻,電平高低取決于外圍電路。
如圖2所示,所述的自動(dòng)延時(shí)電路是這樣的:第五電阻R5一端接電源VDD,一端經(jīng)第六電阻R6接地,第五電阻R5和第六電阻R6的連接處電壓為基準(zhǔn)電壓Uref接至運(yùn)算放大器U2的反相輸入端,觸發(fā)信號RS485_T接至運(yùn)算放大器U2的同相輸入端,運(yùn)算放大器U2的同相輸入端接有由第七電阻R7與第一電容C1組成阻容充電電路;運(yùn)算放大器U2的輸出端經(jīng)第八電阻R8連到第二三極管Q2的基極,第二三極管Q2的發(fā)射極接地,第二三極管Q2的集電極輸出驅(qū)動(dòng)信號RS485_SE。當(dāng)觸發(fā)信號RS485_T為低電平時(shí),第一電容C1的電荷迅速被放光,運(yùn)算放大器U2的反相輸入端電壓大于正向輸入端電壓,運(yùn)算放大器U2輸出端輸出低電平,經(jīng)第八電阻R8連到第二三極管Q2的基極,第二三極管Q2處于截止?fàn)顟B(tài),驅(qū)動(dòng)信號RS485_SE為高阻,電平高低取決于外圍電路。反之,當(dāng)觸發(fā)信號RS485_T為高阻時(shí),電平被第七電阻R7上拉至電源VDD,觸發(fā)信號RS485_T的電平為第一電容C1的充電電壓。當(dāng)?shù)谝浑娙軨1的電壓大于基準(zhǔn)電壓Uref時(shí),運(yùn)算放大器U2的反相輸入端電壓小于正向輸入端電壓,運(yùn)算放大器U2輸出端輸出高電平,第二三極管Q2處于導(dǎo)通狀態(tài),驅(qū)動(dòng)信號RS485_SE為低電平。
如圖3所示,所述的線路切換執(zhí)行電路是這樣的:驅(qū)動(dòng)信號RS485_SE經(jīng)第九電阻R9上拉到電源VDD并經(jīng)第十電阻R10連到第三三極管Q3的基極,第三三極管Q3的發(fā)射極接地,第三三極管Q3的集電極經(jīng)第十一電阻R11連到光耦繼電器RLY1的初級發(fā)光二極管的負(fù)極,初級發(fā)光二極管的正極接電源VDD,主機(jī)I的第一RS485端子RS485I_B和第二第一RS485端子RS485I_A接到光耦繼電器RLY1的常開端子上,主機(jī)II的第一RS485端子RS485II_B和第二第一RS485端子RS485II_A接到光耦繼電器RLY1的常閉端子上,表計(jì)RS485端子接到光耦繼電器RLY1的公共端子上。
當(dāng)驅(qū)動(dòng)信號RS485_SE為高阻時(shí),由于上拉電阻R9的作用,第三三極管Q3飽和導(dǎo)通,光耦繼電器RLY1的初級發(fā)光二極管導(dǎo)通,繼電器動(dòng)作,將主機(jī)I的RS485端子與表計(jì)RS485端子相連。反之當(dāng)驅(qū)動(dòng)信號RS485_SE為低電平時(shí),第三三極管Q3截止,光耦繼電器RLY1的初級發(fā)光二極管沒有電流進(jìn)過,繼電器處于默認(rèn)狀態(tài),主機(jī)II的RS485端子與表計(jì)RS485端子相連。
當(dāng)主機(jī)I的RS485側(cè)發(fā)送數(shù)據(jù)時(shí),電路將主機(jī)I的RS485端子與表計(jì)RS485端子相連。只要主機(jī)發(fā)送數(shù)據(jù),即發(fā)送總線發(fā)送“0”,自動(dòng)延時(shí)電路中的第一電容C1的電平就會(huì)被置為零,只有當(dāng)主機(jī)I的RS485側(cè)發(fā)送完數(shù)據(jù)后,即總線處于無效狀態(tài),且持續(xù)固定的時(shí)間t后(t=R7C1ln[VDD/(VDD-Uref)]),即第一電容C1的電平通過第七電阻R7被充電至大于基準(zhǔn)電壓Uref時(shí),將主機(jī)II的RS485端子與表計(jì)485端子相連。