在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于單片機和串行接口實現串行總線芯片測試平臺的設計

電子設計 ? 來源:電子技術應用 ? 作者:夏繼強,邢春香, ? 2021-06-15 16:28 ? 次閱讀

作者:夏繼強,邢春香,盧明臻,滿慶豐

應用串行接口芯片擴展系統時,在初步選擇了串行接口的芯片后,為了對芯片的資源更好地了解,開發者一般在系統設計前搭建一個簡單的硬件電路并編制相應的軟件對其測試,待性能驗證后再確定最終的設計方案?本文根據這一需要設計了一個用于串行總線芯片測試的實驗平臺?該平臺以PC機為人機接口?采用單片機產生芯片串行通信時序?應用這一平臺可以大大簡化芯片使用前的測試過程?這一平臺也為單片機串行擴展的初學者提供了快捷的學習工具?本平臺目前集成了SPI?One-wire?Microware?I2C四種串行接口,在今后的使用中,可根據需要增加串行接口的種類?

1 串行擴展平臺的結構

SPI?One-wire?Microware?I2C是目前單片機應用系統中最常用的幾個串行擴展接口?具有I2C和One-wire接口的外圍器件都有自己的地址編號,單片機通過軟件選通器件;而SPI和Microware擴展接口芯片首先要通過單片機I/O口線選通其片選腳,然后才能對其進行操作?這四種串行擴展接口都有不同的時序要求,但每一種總線的基本時序要求都是一致的,對芯片的操作無非是讀出或寫入,所不同的是具體的數據字節內容,只要按照各自的時序和命令操作,即可實現芯片功能?本文的串行擴展平臺就是基于這一方法搭建的? 串行擴展平臺由兩部分組成:上位機部分由PC機構成,具有人機接口界面,操作起來方便直接;下位機部分由單片機及擴展接口電路構成,并通過RS-232接口與上位機通信?

下位機的核心是AT89C51單片機?單片機本身并沒有SPI?One-wire?Microware?I2C接口,使用虛擬器件技術,在單片機內采用模塊化設計思想固化四種接口的串行訪問子程序,通過軟件調用完成這幾種串行擴展的時序,用單片機的普通I/O口線模擬出四種串行接口,在下位機電路板上留有較大的通用板空間或用標準的連接器將串行接口引出,便于與待測芯片連接?AT89C51單片機沒有RS-232接口,但它的UART口可以采用MAX232等芯片擴展出簡單的RS-232接口,與上位機的RS-232接口相接?下位機的結構如圖1所示?

測試時,將待測芯片與對應的串行接口相連,操作者在上位機將訪問命令和數據通過RS-232接口下傳給下位機;下位單片機對其分析后調用相應的時序模擬程序訪問待測芯片,并將結果通過RS-232接口上傳給上位機,在上位機顯示?從整個測試過程來看,只要關心命令和數據的輸入和輸出,不必關心具體時序,近似一種透明的操作?測試后,只需對單片機中的子程序稍加裁減,即可移植到實際應用軟件中,為開發提供了方便?下面將分別介紹這四種串行通信接口的實現?

2 四種串行通信接口的實現

在串行擴展中,可以根據接口主器件的數量分為單主器件系統和多主器件系統?其中單主器件系統應用最普遍?在單主器件系統中,具有一個主控制器件和多個從器件,數據的傳送由主器件控制?主器件啟動和停止數據的發送,提供同步時鐘信號?在應用中使用種類最多的是功能繁多的從器件?本文的串行擴展平臺主要針對這些從器件應用設計?所以該平臺采用單主器件系統結構,只考慮用單片機的通用I/O口線模擬主器件訪問從器件的時序邏輯?

2.1 I2C總線接口時序

I2C串行總線是Philips公司提出的一種板內芯片間串行總線?它用兩根連線即可方便地實現外圍器件擴展?圖2給出了主器件對從器件訪問的基本讀寫時序,SDA為數據線,SCL為時鐘線?

I2C總線上數據傳送的基本單位為字節,采用低位在前的格式?主從器件之間一次傳輸的數據稱為一幀,由啟動信號?若干個數據字節和應答位以及停止信號組成?可以看出,I2C的主要命令只有讀?寫兩種情況,雖然讀寫的字節根據具體器件的不同而不同,但其時序關系不會發生改變?根據這一點,下位機只要具備I2C的基本時序即可?這些基本時序包括:啟動?寫字節?讀字節?應答位?停止信號,并可以組合成兩個子程序:讀N字節子程序?寫N字節子程序?

2.2 串行外圍接口SPI

SPI(同步串行外設接口)由Motorola公司提出,它是一種三線同步接口,分別為同步信號?輸入信號和輸出信號?另外每個擴展芯片還需要一根片選線,主器件通過片選線選通與其通信的從器件?圖3給出了SPI的時序圖?其中,SCK為同步時鐘脈沖,SS為片選線,MOSI為主器件的數據輸出和從器件的數據輸入線,MISO為主器件的數據輸入線和從器件的數據輸出線?

SPI是全雙工的,即數據的發送和接收可同時進行?如果僅對從器件寫數據,主器件可以丟棄同時讀入的數據;反之,如果僅讀數據,可以在命令字節后,寫入任意數據?數據傳送以字節為單位,并采用高位在前的格式?SPI接口的通信程序可簡化為:寫讀N字節子程序?

2.3 Microware串行通訊接口

NS公司的Microware是串行同步雙工通訊接口,由一根數據輸出線?一根數據輸入線和一根時鐘線組成?所有從器件的時鐘線連接到同一根SK線上,主器件向SK線發送時鐘脈沖信號,從器件在時鐘信號的同步沿輸出/輸入數據?主器件的數據輸出線DI和所有從器件的數據輸入線相接,從器件的數據輸出線都接到主器件的數據輸入線DO上?與SPI接口類似,每個從器件也都需要另外提供一條片選通線CS(注意:它采用高選通方式)? 圖4給出了主器件對從器件操作的基本時序,包括寫起始位?寫操作碼和讀字節,數據交換采用高位在前的格式?圖4中給出了讀兩個字節時的情況,在主器件寫完起始位和操作碼后,從器件會應答一個 “0”?該應答位在主器件寫完操作碼的最后一位時給出?在本文中,主器件速度較慢,可以不考慮等待該位?Microware接口的通用子程序有:啟動子程序,讀N字節子程序?寫N字節子程序?不同的Microware器件支持的起始位?操作碼有所不同,但可人為組成合適的字節?

2.4 One-wire總線

One-wire總線是DALLAS公司研制開發的一種協議?它由一個總線主節點?一個或多個從節點組成系統,通過一根信號線對從芯片進行數據的讀取?每一個符合One-wire協議的從芯片都有一個唯一的地址,包括48位的序列號?8位的家族代碼和8位的CRC代碼?主芯片對各個從芯片的尋址依據這64位的不同來進行? One-wire總線利用一根線實現雙向通信?因此其協議對時序的要求較嚴格,如應答等時序都有明確的時間要求?基本的時序包括復位及應答時序?寫一位時序?讀一位時序,如圖5和圖6所示?在復位及應答時序中,主器件發出復位信號后,要求從器件在規定的時間內送回應答信號;在位讀和位寫時序中,主器件要在規定的時間內讀回或寫出數據?為了與其它模擬接口的子程序在結構形式上盡量一致,在One-wire模擬時序程序中把位讀和位寫時序拓延,形成低位在前的字節讀寫時序,寫一個字節的時序如圖7所示?最終形成三個子程序:復位及應答子程序?寫N個字節子程序和讀N個字節子程序?

2.5 下位機軟件

從功能上來說,下位機軟件的作用是接收上位機發出的命令,分析命令,根據命令對各時序子程序進行組合和調用,形成正確的訪問時序邏輯;如果有返回數據,還要將返回數據回送上位機顯示?前面已經對四種串行接口的模擬時序子程序進行了簡要介紹,由于篇幅所限,無法對每個子程序進行詳細的說明,進一步的時序說明,可以查閱有關的參考文獻和相關手冊?這里只給出下位機軟件總體流程,如圖8所示?有關上位的命令在上位機與其通信的協議中介紹?

3 上位機通信軟件的實現

上位PC機作為人機交互界面,負責向下位機發送經過人工分析的數據字節,這為開發者提供了對芯片的透明操作?即在對某一類芯片進行操作時并不關心中間具體的過程,只須分析數據,形成相應的數據幀,發送給下位機,即可完成對芯片的操作?上位機將操作的芯片分成四類(I2C?SPI?Microware?One-wire),用一個字節進行標識(0?1?2?3)?如果只進行寫操作,則上位機發送完寫入字節后,不操作;如果進行讀操作,需重新設定發送的字節并等待下位機返回的數據字節?在Microware和One-wire協議中須發送起始位或復位信號的地方可以用特殊字節標識?上位機向下位機發送的數據幀由起始字節?通信選定字節?讀/寫命令字節?字節數和數據字節組成?圖9給出了在讀和寫兩種情況下,上位機發送的數據幀和下位機返回數據幀的組成?

結束語

本文討論的芯片級串行總線擴展應用研發平臺在實際應用中取得了良好的效果,縮短了新器件功能測試的時間,縮短了新產品的開發周期,并可根據需要增加串行接口種類?另外,這一平臺也為初學者全面了解串行擴展技術提供了良好的途徑?

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 芯片
    +關注

    關注

    455

    文章

    50816

    瀏覽量

    423617
  • 單片機
    +關注

    關注

    6037

    文章

    44558

    瀏覽量

    635309
  • 總線
    +關注

    關注

    10

    文章

    2881

    瀏覽量

    88085
收藏 人收藏

    評論

    相關推薦

    單片機--串行口實驗 精選資料下載

    實驗目的和任務目的:利用“模塊化單片機教學實驗平臺”,加深對單片機串行口的理解。任務:利用單片機串行
    發表于 07-19 06:52

    Neuron芯片與MCS-251系列單片機串行通信的實現

    摘要: 介紹一種基于MCS 251系列單片機的LON節點 ,它利用MCS 251 系列單片機串行接口實現與Neuron芯片的數據交換。文中
    發表于 07-26 12:31 ?19次下載

    基于單片機串行通信

    一、實驗目的1.了解串行通信的基本知識;2.掌握用單片機串行口實現串行通信的方法。二、實驗器材微機、示波器、萬用表、電源、AEDK仿真開發系統,面包板一塊,M
    發表于 09-19 20:33 ?52次下載

    PIC單片機軟件異步串行口實現方法

    PIC單片機軟件異步串行口實現方法 在用單片機開發各種嵌入式應用系統時,異步串行通信是經常要用到的一種通信
    發表于 09-17 14:56 ?1475次閱讀
    PIC<b class='flag-5'>單片機</b>軟件異步<b class='flag-5'>串行口實現</b>方法

    單片機入門教程第21課-串行接口

    單片機入門教程第21課-串行接口 概述  串行接口的一般概念  單片機與外界進行信息交換稱之為
    發表于 01-07 15:47 ?1707次閱讀
    <b class='flag-5'>單片機</b>入門教程第21課-<b class='flag-5'>串行</b><b class='flag-5'>接口</b>

    AVR單片機串行AD的SPI接口設計

    為了解決信號采集系統的同步串行通訊問題,在理解AVR 單片機SPI接口的通訊原 理和方法的基礎上,分析了AVR 單片機SPI接口的工作過程
    發表于 02-18 16:07 ?211次下載
    AVR<b class='flag-5'>單片機</b>與<b class='flag-5'>串行</b>AD的SPI<b class='flag-5'>接口</b>設計

    單片機串行口的并行通信技術

    單片機串行口是最常用的端口, 對于存在兩個或多個串行口的單片機來說, 充分利用串行口進行通信是非常重要的。故以常見的8051系列
    發表于 12-09 15:19 ?103次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>串行</b>口的并行通信技術

    SPI總線接口實現數據傳輸的實現方法

    本文介紹了通過SPI總線接口實現數據傳輸的實現方法,給出了用MCS51單片機匯編語言模擬SPI串行總線
    發表于 11-16 13:34 ?8次下載

    使用定時器實現PIC18單片機與兼容UNIO?總線串行EEPROM的接口

    本文檔內容介紹了基于使用定時器實現PIC18單片機與兼容UNIO總線串行EEPROM的接口,供參考
    發表于 03-29 17:47 ?2次下載
    使用定時器<b class='flag-5'>實現</b>PIC18<b class='flag-5'>單片機</b>與兼容UNIO?<b class='flag-5'>總線</b><b class='flag-5'>串行</b>EEPROM的<b class='flag-5'>接口</b>

    51單片機教程之80C51單片機串行口介紹及如何進行串行總線的擴展

    本文檔的主要內容詳細介紹的是51單片機教程之80C51單片機串行口介紹及如何進行串行總線的擴展。主要內容包括了:1
    發表于 12-05 11:53 ?27次下載
    51<b class='flag-5'>單片機</b>教程之80C51<b class='flag-5'>單片機</b>的<b class='flag-5'>串行</b>口介紹及如何進行<b class='flag-5'>串行</b><b class='flag-5'>總線</b>的擴展

    51單片機的IO口如何模擬串行通信實現方法詳細說明

    的方法是擴展一片8251 或 8250 通用同步/異步接收發送芯片(USART),需額外占用單片機I/O 資源。本文介紹一種用單片機普通I/O 口實現
    發表于 12-20 15:32 ?2次下載
    51<b class='flag-5'>單片機</b>的IO口如何模擬<b class='flag-5'>串行</b>通信<b class='flag-5'>實現</b>方法詳細說明

    如何設計一個單片機無線串行接口電路

    介紹一種采用MICRF102單片發射芯片,MICRF007單片接收芯片構成的單片機無線串行
    發表于 04-27 08:00 ?0次下載
    如何設計一個<b class='flag-5'>單片機</b>無線<b class='flag-5'>串行</b><b class='flag-5'>接口</b>電路

    基于AT89C51單片機實現串行總線芯片測試實驗平臺的設計

    應用串行接口芯片擴展系統時,在初步選擇了串行接口芯片后,為了對
    的頭像 發表于 06-17 11:09 ?2242次閱讀
    基于AT89C51<b class='flag-5'>單片機</b><b class='flag-5'>實現</b><b class='flag-5'>串行</b><b class='flag-5'>總線</b><b class='flag-5'>芯片</b><b class='flag-5'>測試</b>實驗<b class='flag-5'>平臺</b>的設計

    單片機--串行口實

    實驗目的和任務目的:利用“模塊化單片機教學實驗平臺”,加深對單片機串行口的理解。任務:利用單片機串行
    發表于 11-17 09:36 ?10次下載
    <b class='flag-5'>單片機</b>--<b class='flag-5'>串行口實</b>驗

    如何實現51單片機與PC串行通信

    51單片機與PC串行通信是一種常見的通信方式,它允許單片機通過串行接口與PC
    的頭像 發表于 10-21 11:35 ?925次閱讀
    主站蜘蛛池模板: 天天在线看片| 久久天天躁夜夜躁狠狠| 午夜免费网站| 久久天天躁夜夜躁狠狠85麻豆| 又粗又大又爽又色又过瘾视频 | 天天插日日干| 国产精品久久福利网站| 69日本xxⅹxxxxx19| 美女扒开尿囗给男人玩的动图| 永久免费品色堂| 国内精品 第一页| 91精品啪在线观看国产日本| 中文字幕亚洲天堂| 日本三级在线观看免费| 国产女人伦码一区二区三区不卡| 天天做天天爱夜夜爽女人爽宅| www.91大神| 日本成人黄色网址| 91精选视频在线观看| 久久新视频| 亚洲一区二区三区电影| 欧美福利视频网| 在线播放91灌醉迷j高跟美女| 久草福利在线播放| 日本在线不卡视频| 日韩精品亚洲一级在线观看| xxxx欧美69免费| 国产成+人+综合+亚洲欧美丁香花 国产成人1024精品免费 | 午夜男人天堂| 日日噜噜噜夜夜爽爽狠狠视频| 国产免费一级高清淫曰本片| 1024手机最新手机在线| 亚洲天堂手机在线| 狠狠色噜噜狠狠色综合久| 色花堂国产精品首页第一页| 亚洲视频区| 欧美婷婷六月丁香综合色| 午夜国产精品福利在线观看| 黄色三级欧美| 亚洲 欧美 另类 综合 日韩 | 宅男色视频|