新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > RS485/RS232轉(zhuǎn)換器實現(xiàn)的串行通信

        RS485/RS232轉(zhuǎn)換器實現(xiàn)的串行通信

        作者: 時間:2016-12-16 來源:網(wǎng)絡(luò) 收藏

        在電參數(shù)儀的設(shè)計中,數(shù)據(jù)采集由單片機AT89C52負責,上位PC機主要負責通信(包括與單片機之間的串行通信和數(shù)據(jù)的遠程通信),以及數(shù)據(jù)處理等工作。在工作中,單片機需要定時向上位PC機傳送大批量的采樣數(shù)據(jù)。通常,主控PC機和由單片機構(gòu)成的現(xiàn)場數(shù)據(jù)采集系統(tǒng)相距較遠,近則幾十米,遠則上百米,并且數(shù)據(jù)傳輸通道環(huán)境比較惡劣,經(jīng)常有大容量的電器(如電動機,電焊機等)啟動或切斷。為了保證下位機的數(shù)據(jù)能高速及時、安全地傳送至上位PC 機,單片機和PC機之間采用RS485協(xié)議的串行通信方式較為合理。

        本文引用地址:http://www.104case.com/article/201612/330824.htm

        實際應(yīng)用中,由于大多數(shù)普通PC機只有常用的RS232串行通信口,而不具備RS485通信接口。因此,為了實現(xiàn)RS485協(xié)議的串行通信,必須在PC機側(cè)配置RS485/RS232轉(zhuǎn)換器,或者購買適合PC機的RS485卡。這些附加設(shè)備的價格一般較貴,尤其是一些RS485卡具有自己獨特的驅(qū)動程序,上位PC機的通信一般不能直接采用WINDOW95/98環(huán)境下有關(guān)串口的WIN32通信API函數(shù),程序員還必須熟悉RS485卡的應(yīng)用函數(shù)。為了避開采用RS485通信協(xié)議的上述問題,我們決定自制RS485/RS232轉(zhuǎn)換器來實現(xiàn)單片機和PC機之間的通信。

        單片機和PC機之間的RS485通信硬件接口電路的框圖,如圖1所示。

        從圖1可看出,單片機的通信信號首先通過光隔,然后經(jīng)過RS485接口芯片,將電平信號轉(zhuǎn)換成電流環(huán)信號。經(jīng)過長距離傳輸后,再通過另一個RS485接口芯片,將電流環(huán)信號轉(zhuǎn)換成電平信號。

        該電平信號再經(jīng)過光電隔離,最后由SR232接口芯片,將該電平信號轉(zhuǎn)換成與PC機RS232端口相兼容的RS232電平。由于整個傳輸通道的兩端均有光電隔離,故無論是PC機還是單片機都不會因數(shù)據(jù)傳輸線上可能遭受到的高壓靜電等的干擾而出現(xiàn)“死機”現(xiàn)象。

        2、接口電路的具體設(shè)計

        2.1單片機側(cè)RS485接口電路的設(shè)計

        單片機側(cè)RS485接口電路如圖2所示。

        AT89C52單片機的串行通信口P30(RXD)和P31(TXD)的電平符合TTL/CMOS標準(邏輯“0”的電平范圍為 0V~0.8V,邏輯“1”的電平為24V~VCC),它們首先通過光電隔離器件6N137隔離,以保護單片機不受傳輸通道的干擾影響,其中T01和 T02是為了增加光隔輸入端的驅(qū)動能力。光隔6N137的左側(cè)電源與單片機相同,右側(cè)必須采用另一組獨立的+5V電源,且兩組電源不能供電。

        MAX490[4]是MAXIM公司的RS485接口芯片,其內(nèi)部結(jié)構(gòu)如圖3所示。MAX490支持單電源+5V工作,傳輸速率最高可達25MBPS,可實現(xiàn)全 雙工通信。其RO、DI端的邏輯“0”的電平在 -0.5V~0.8V之間,邏輯“1”的電平在20V~VCC之間。輸出電流環(huán)的電流在150μA~500μA之間。其工作狀態(tài)為:當A 端電壓比B端電壓高200mV以上,RO輸出邏輯“1”,當A端電壓比B端電壓低200mV,RO輸出邏輯“0”;當DI為邏輯“0”,輸出Y低、Z高,當DI為邏輯“1”,輸出Y高、Z低。圖2中的電阻器RRS為MAX490的終端匹配電阻器。

        上一頁 1 2 下一頁

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 辉南县| 大邑县| 钦州市| 海丰县| 承德县| 濉溪县| 上犹县| 孟津县| 太仓市| 衡水市| 普定县| 呈贡县| 吉林市| 兴海县| 宜春市| 临沧市| 长岛县| 石渠县| 桃园市| 怀宁县| 监利县| 六枝特区| 丹棱县| 育儿| 睢宁县| 合肥市| 花垣县| 崇州市| 永胜县| 泾川县| 泸西县| 奉节县| 贵州省| 揭阳市| 青神县| 寿宁县| 睢宁县| 中宁县| 连州市| 满洲里市| 哈巴河县|