李高峰
(青島艾諾智能儀器有限公司,山東 青島 266101)
在工業現場應用中,控制系統往往需要多組開關量輸出和輸入,既要求安全電氣隔離,又要求遠距離控制,還要求抗干擾性能強。本文設計了一種基于STC8F單片機的開關量控制系統,可較好地解決上述問題。
以STC8F單片機為核心,用16路IO口控制16路繼電器開關量輸出,用另外16路IO口控制光耦開關量輸入,通過RS485串口和外部通信。
STC8F系列單片機是STC公司的新一代產品,特點為:①超高速8051內核,指令代碼完全兼容傳統8051,支持在線仿真。②最大64 K字節FLASH,可擦寫100 000次以上,支持在系統編程(ISP),2 K字節內部擴展RAM。③多個定時器,多個串口,多組GPIO。集成可編程的時鐘、電壓監控復位電路。④寬電壓,寬溫度,抗干擾,價格低。
控制模塊如圖1所示。
J1為電源輸入,可使用DC5V/1A適配器供電,有濾波電容C9和保護用TVS1。因適配器基本都是開關電源,C9沒有使用太大的電容。U1為STC8F2K64S2-LQFP44單片機,是系統的控制核心。因其內部集成的晶振精度及溫漂不太理想,為減小串口波特率的誤差,使用了外部晶振Y1。使用了其內部集成的可編程電壓監控復位電路,沒有使用單獨的外部復位電路。P5.4控制指示燈,用來指示本機狀態,比如正常、通信故障等。DO[0..15]為16路輸出IO,驅動后級開關量輸出繼電器陣列,單片機內部可配置為推挽輸出模式。DI[0..15]為16路輸入IO,來自開關量輸入光耦陣列,單片機內部可配置為準雙向弱上拉模式。J2為串口UART1(RXD1、TXD2),用于下載程序和仿真調試。串口UART2(RXD2、TXD2、REN/DE)接后級RS485模塊,作為從設備與外部主機通信。SW1為撥碼開關,用于設定本機的通信地址。電容C1、C8為單片機的濾波電容,應盡量靠近單片機VCC/GND引腳,PCB走線盡量短而粗。

圖1 控制模塊
RS485串口模塊如圖2所示。

圖2 RS485串口模塊
SP485E為SIPEX公司產品,具有抗靜電、失效保護等特點。系統復位時REN/DE經R3下拉,處于接收模式,免得影響外部總線。為增強抗干擾能力,比如雷擊,增加了多個電阻和TVS進行保護。
開關量模塊如圖3所示。

圖3 開關量模塊
2.4.1 開關量輸出陣列
圖3中為一路示例,實際為DO[0..15]共16路。DO0通過三級管T1驅動繼電器RY1,二極管D2為繼電器線圈續流二極管。CR1為阻容模塊,可吸收觸點動作時產生的電磁拉弧。繼電器為宏發HF46-5 V。線圈規格為5 V/125 Ω,線圈電流為40 mA,如果16路繼電器同時動作,最大需要640 mA電流。觸點規格為5A/250 VAC/28 VDC,應避免帶大功率負載,以免觸點燒壞粘連。線圈和觸點間耐壓為4 000 VAC,觸點間耐壓為1 000 VAC。在PCB步線時,應注意250 VAC的安全距離和電氣間隙的要求。
2.4.2 開關量輸入陣列
圖3中為一路示例,實際為DI[0..15]共16路。SWI0經濾波及二極管保護,經光耦到DI0。SWI0短接到GNDS為有效信號(低有效)。
U4為DCDC模塊,陣列共用,深圳順源公司的F0505S-1W,輸出5 V/200 mA,隔離電壓3 000 VAC。
軟件設計主要包括:①初始化。主要包括GPIO、定時器T0、串口2、看門狗等。②定時器T0中斷函數。對輸入信號進行掃描,對輸出信號進行更新。③串口2中斷函數。接收上位機下發的指令,上傳本機掃描結果。
本系統可控制多路開關量,簡單可靠,移植方便,價格便宜,具有一定的實用和推廣價值。