• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 計算機串口與單片機通訊測試系統的實現

    計算機串口與單片機通訊測試系統的實現

    作者: 時間:2012-02-21 來源:網絡 收藏

    1 引 言

    本文引用地址:http://www.czjhyjcfj.com/article/172038.htm

    串行接口標準經過使用和發展,目前已有多種,不過都是在RS-232C的基礎上改進而形成的。RS-232C標準是美國EIA(電子工業聯合會)與 BELL公司一起開發并于1969年公布的協議。因此,他作為一種標準,目前已在微機接口中被廣泛采用,他不僅已被內置于每臺,同時也已被內置于從微處理器到主機的多種類型的及其相連設備。而的通訊技術可以解決多臺下位機的多內容同時顯示,還可以方便地完成多機通訊技術、多數據處理等優點。但是當同時用到兩種通信方式時,很可能產生沖突或其他不可預料的錯誤,對開發工作極其不利。

    所以,此系統解決了這種開發中的問題,依靠軟件仿真數據信號的發送、接收和多種通訊方式的測試。利用簡單的硬件連接去檢測通訊是否能正常工作。

    11.jpg

    2 系統硬件組成

    由圖1可看出,該系統主要由軟硬件兩部分構成,硬件平臺是由PC機串口發送到下位機一條通道。圖中光耦電路完成PC機信號RS-232電平到TTL電平的轉換。當PC機輸入口為RS-232高電平時,二極管VD1及光耦電路導通,使得三極管VT1導通,8031接收口RXD被定位于TTL低電平(0 V);當輸入口為RS-232低電平時,二極管VD1及光耦電路截止,使得三極管VT1截止,RXD被定位于TTL高電平(+5 V)。

    另外軟件系統對由PC信號入口(串口)可以輸入信號,對串口和的通訊進行字符、數字、顯示等測試。

    3 測試方法和內容

    由串口向單片機接口進行通訊、發送數據和返回設備狀態,而傳輸協議的選擇對于通訊雙方至關重要。針對系統的測試主要是常規測試,所以選擇了面向字符的同步協議,如圖2所示。

    12.jpg

    這種協議的典型代表是IBM公司的二進制同步傳輸(BSC)協議,他的特點是一次傳送若干個字符組成的數據塊,而不是只傳送一個字符,并規定了10個字符作為這個數據塊的開頭與結束標志以及整個傳輸過程的控制信息,他們叫做通信控制字。此系統會在測試時嚴格依照協議對單片機接受端進行數據發送,從端口發送數據校驗碼進行測試。而數據前的SYN主要起聯絡作用,SOH為序始字符。數據塊將傳送正式的測試字符,測試字符包括數字、漢字、字符等進行發送,單片機(下位機)將進行相應顯示,顯示完成后,PC機(上位機)將有本地回顯,回顯出發送的內容和接收到的數據是否顯示一致。如果顯示一致,則將會發出串口和單片機連接成功的標志;如果不能一致顯示,或者出現亂碼以及出現數據錯位,或者單片機難以接受上位機數據。

    類似這些情況,此系統會開始利用二進制編碼進行位校驗,當接口和單片機不能通訊時,可能出現硬件或者軟件的情況。會有專門的模塊進行處理,將會對通訊過程進行再次發送,如果發送后,得不到單片機的回應信號則說明硬件電路連接存在問題。而出現不能正常顯示等情況,則系統會對發出的數據進行位分析,自動對發送的測試數據減少其內容,并重新檢測協議的執行,以確定協議上無錯。檢測是否為硬件的電路產生的干擾。因為可測試多臺下位機,所以,數據為廣播方式發送,測試時可調整為點-點的發送方式。而系統會在接受到正常返回信號后,自動正常回顯。

    測試過程中,系統自動調整測試順序,以最快的速度對所有下位機進行測試,常規情況下是順序測試。如果某個單片機和串口通信出現問題,則系統會跳過出問題的目標機,繼續向下檢測,并同時記錄下該機的問題。

    在所有目標機被測試完成后,對出問題的機器再進行點點的測試,以確定其狀況和問題所在。如果多目標機出現問題,則可對他們同時采取處理,啟用多個進程進行,以提高效率。該系統最多可同時對8個目標機進行檢測,超過8個,系統會自動進行任務保存,以進行第二批處理。

    4 系統軟件具體

    軟件系統主要完成的功能是單片機串口的初始化和雙機通訊,完成軟件測試。而單片機初始化包括下面內容:串行控制器SCON的設置,定時器方式控制寄存器TMOD及T1的定時初始值的設置,專用寄存器PCON的SMOD位的設置。

    13.jpg

    在測試開始時,PC機先送出測試開始標志(本系統用ASCII碼的1AH),接著發送各下位機的地址信號,再送出本次測試要發送的數據個數信息,最后是連續發送出測試數據。下位機采用查詢方式接受數據,當RI被激活時,讀入數據,判斷是否是1AH,如果是,則繼續等待接受下一個數據,判斷是否在呼叫自己,若是,則往下接受第3個數,即本次要接受的數據個數,并按照其所給信息相應設定往下要連續接受的數據個05數。


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 虞城县| 博罗县| 连州市| 云霄县| 洛阳市| 杭锦后旗| 梓潼县| 故城县| 教育| 普陀区| 额敏县| 台北县| 贡嘎县| 合肥市| 尼勒克县| 龙江县| 邵阳市| 惠水县| 高青县| 山东省| 留坝县| 临漳县| 浠水县| 休宁县| 石城县| 文化| 留坝县| 文登市| 郎溪县| 秭归县| 轮台县| 蒙山县| 鱼台县| 两当县| 宜兴市| 平谷区| 许昌市| 文山县| 黄冈市| 黔西| 碌曲县|