嵌入式硬件通信接口協議SPI:協議基礎(二)
信號時序四線SPI接口的時序一般的總是先拉低從機選擇信號線SS,然后輸出SCLK,帶著數據MOSI,此時MISO為高阻態。大致如下如:一般有SPI接口的器件,在Spec上都會有對應的時序圖,這里分別截取SPI接口FLASH型號為GD25Q32C、SPI接口OLED型號為QG-2832TLBFG04,這兩器件的Spec內關于SPI時序部分的介紹,如下兩張截圖:對比不難發現,時序圖的規范,定義了各個信號線輸出電平的順序和時延,還定義了時鐘信號跳變沿與數據信號的“對齊”,這里的“對齊”實際上就是數據的輸出和采樣。同樣的,這個時序規范了SPI器件所呈現的SPI接口信號線特性,包括:時鐘上升、下降沿時長;片選與時鐘跳變沿之間的時延;時鐘邊緣與數據線保持的時長…這些時序特性,都在明確了SPI主機與其通信時,要求不超出其定義的范圍,否則從機器件響應不及時而導致通信異常。不同的器件,對SPI接口的信號時序要求也會不同。第一張簡明的時序圖......閱讀全文
嵌入式硬件通信接口協議SPI:協議基礎(二)
信號時序四線SPI接口的時序一般的總是先拉低從機選擇信號線SS,然后輸出SCLK,帶著數據MOSI,此時MISO為高阻態。大致如下如:一般有SPI接口的器件,在Spec上都會有對應的時序圖,這里分別截取SPI接口FLASH型號為GD25Q32C、SPI接口OLED型號為QG-2832TLBF
嵌入式硬件通信接口協議SPI:協議基礎(一)
本節繼續講嵌入式硬件通信接口協議中的另外一個串行通信接口-SPI。相比于UART串口協議,SPI又有著其獨特之處。簡介SPI(全稱SerialPeripheral Interface),串行外設接口。SPI是串行外設接口(SerialPeripheral Interface)的縮寫。
嵌入式硬件通信接口協議SPI:協議基礎(三)
時鐘速率速率選擇定義了時鐘信號線在數據傳輸是的翻轉速率,這體現到每個芯片定義的接口時序圖中,即可承受的速率范圍,如果主機設的速率太快,而從機響應過慢會導致通信失敗。數據bit位大小端選擇數據的發送優先bit可配置,從上篇的UART協議可以知道,UART規定了數據優先發bit0,而這個SPI是
嵌入式硬件通信接口協議SPI三:模擬接口應用(二)
驗證模擬SPI接口的正確性,通過讀取SPI-FLASH芯片的廠商ID,校驗讀到的數據與手冊是否一致。FLASH功能模塊屬于模塊庫層,介于應用層和驅動層之間。因此對SPI-FLASH模塊的源碼封裝成lib層。創建源碼文件:dclib_spiflash.cdclib_spiflash.h同樣的也需要對該
嵌入式硬件通信接口協議IIC一:協議基礎(二)
關于理解和記憶,推薦分組記憶:SCL高電平時,SDA拉低開始,SDA拉高結束;SCL高電平時,接收方采樣SDA管腳電平;SCL低電平時,發送方改變SDA管腳電平;應答位,SDA低電平表示ACK,SDA高電平表示NACK。以上就是IIC在通信過程中,可能出現的信號時序狀態特征。如果要和SPI接口對比,
嵌入式硬件通信接口協議SPI三:模擬接口應用(一)
簡單完成模擬SPI各個接口的實現后,僅僅利用示波器抓取信號的時序當然是不夠的。雖然單片機作為SPI主機輸出數據時的信號很容易抓取,但是從機發出的數據(即主機讀取MISO信號時序),還要找個SPI接口的外設器件,這樣主機發出、從機反饋。比如SPI-FLASH,此處找來一片型號為W25Q16的F
嵌入式硬件通信接口協議IIC一:協議基礎(三)
AT24C1024B存儲芯片的時鐘要求:綜上所述,IIC總線接口,屬于兩線、多主多從、半雙工通信接口協議。熟悉兩根信號線的時序圖,基本上對IIC的了解就差不多了。關于IIC接口的分層架構設計,敬請期待后續更新。★★★★★推薦文章《【嵌入式編程】函數返回類型設計》《【嵌入式編程】平臺大小端存儲差異解決
嵌入式硬件通信接口協議IIC一:協議基礎(一)
本節繼續講嵌入式硬件通信接口協議中的又一個串行通信接口-IIC。相比于UART串口協議和SPI串行外設接口協議,這個IIC又有其獨特之處。簡介IIC(Inter-Integrated Circuit),集成電路總線。IIC 即Inter-IntegratedCircuit(集成電路總
嵌入式硬件通信接口協議IIC二:分層架構設計模擬接口1
關于分層設計的思想,在之前的一篇文章中《嵌入式硬件通信接口協議-SPI(二)分層架構設計模擬接口》介紹SPI接口設計時,已經做了詳細的設計過程講解,在此就不贅述了。現在參考SPI的BSP層設計思路,用同樣的方法來設計IIC接口的BSP層代碼模塊。本文將要講解和實現的內容主要分為兩個部分:代碼
嵌入式硬件通信接口協議IIC二:分層架構設計模擬接口2
關于分層設計的思想,在之前的一篇文章中《嵌入式硬件通信接口協議-SPI(二)分層架構設計模擬接口》介紹SPI接口設計時,已經做了詳細的設計過程講解,在此就不贅述了。現在參考SPI的BSP層設計思路,用同樣的方法來設計IIC接口的BSP層代碼模塊。本文將要講解和實現的內容主要分為兩個部分:代碼
嵌入式硬件通信接口協議IIC二:分層架構設計模擬接口3
應答的目的,就是“接收方”告知“發送方”,我已正常收到剛剛發來的數據。等待應答ACK既然是應答,就有兩向性:IIC從機應答IIC主機;IIC主機應答IIC從機。上圖的應答ACK/NACK都是IIC主機主動輸出的,是用來告知從機“我主機已正常收到”。而IIC從機告知主機的應答ACK,這里要用等
嵌入式硬件通信接口協議UART:快速使用串口及應用4
五、初見數據協議解析如果是簡單幾個字符的指令,可以用上述那樣簡單判斷,但是在稍微中等級別的工程項目中,用那樣的方式都已經很不便于處理和擴展了。比如有一串數據,并且長度不確定,將會超過10個字節、20個字節、100個字節甚至更多,那么這時候就必須使用協議解析的方式。通常的,數據協議都會有協議頭、長度、
嵌入式硬件通信接口協議UART:快速使用串口及應用1
一、串口啟用流程開講前,先找幾款芯片的串口demo程序瞄一眼。依次有STM32的V3.5標準庫、nRF52832的官方demo以及51核的STC15系列單片機的官方DEMO。從以上的部分demo例程來看,并結文章《嵌入式硬件通信接口協議-UART(一)協議基礎》的介紹,在啟用串口的時候,需要配置的那
嵌入式硬件通信接口協議UART:快速使用串口及應用3
2. ? ANSI C標準中有幾個標準預定義宏:__LINE__:源代碼中的行號(字符串形式)__FILE__:當前*.c源碼文件的文件名(字符串形式)__DATE__:編譯日期(字符串形式)__TIME__:編譯時間(字符串形式)__STDC__:當要求程序嚴格遵循ANSI C標準時該標識被賦值為
嵌入式硬件通信接口協議UART:快速使用串口及應用2
三、調試-輸出開發調試過程中,輸出的內容基本上就是想查看的變量值、代碼的執行位置跟蹤、算法或者某些運算的結果等等。這些輸出,僅用于調試階段,而在人機調試過程中,使用計算機的串口助手軟件進行交互,則輸出的數據應該便于識讀和判斷。1. ? C庫函數printf格式輸出重定向到串口輸出輸出串口數據過程中,
嵌入式硬件通信接口協議:UART不同電氣規范下的標準2
而負邏輯電平的RS232的信號電壓不僅恰好相反,而且電壓大小也不一樣。在MAX232芯片上,邏輯“0”對應的是+10V,邏輯“1”對應的是-10V。同時RS232還定義了機械接口特性,常見的有DB-9接口和DB-25接口,其接口定義如下表:針腳信號定義作用DB-91DCD載波檢測Data Carri
嵌入式硬件通信接口協議:UART不同電氣規范下的標準1
在上一篇《嵌入式硬件通信接口協議-UART(一)協議基礎》中,簡單而細致描述了UART的各個配置項以及通信過程的信號時序,此篇將繼續介紹UART接口在不一樣的電氣特性下,所使用的一些接口規范。一、 ? ?簡介實際上UART只是對信號時序進行定義,而未定義其電氣特性。在不一樣的應用場景下,不同
嵌入式硬件通信接口協議:UART不同電氣規范下的標準3
(三) ? ? ? ? ?RS-422RS-422標準全稱是“平衡電壓數字接口電路的電氣特性”,該協議制定了接口電路的電氣特性。除了信號線的電氣特性,其他規范基本都是沿用RS232的規范。RS-422的信號線采用的是差分傳輸方式,即原來的TxD、RxD信號線,此時分別改用兩根線來完成,即TxD+和T
嵌入式硬件通信接口:使用RingBuffer處理數據(二)
目測該項目確實有些久遠了,最后一次commit已是兩年前的2016年5月了。先不管,好酒也是有年份的!下載到本地,打開項目文件夾,查看C文件和H文件。快速瀏覽ringbuffer.c文件中對外封裝的各個函數,主要有:循環緩沖區初始化增加一個數據元素增加多個數據元素讀取一個元素讀取多個元素查看
嵌入式硬件通信接口:使用RingBuffer處理數據(一)
事實上UART只是一個傳輸層的協議。在實際的項目使用中,往往是根據項目的具體需求,在以UART作為物理傳輸接口的通信方式上,自定義私有的應用層協議,這個應用層協議本質就是數據協議,并且對協議的解析和實現,都需要MCU對數據進行緩存、計算、校驗、分析等操作。說到緩存,在這先賣個關子……估計大部分人首先
基于Nagle算法的嵌入式TCP協議(二)
嵌入式TCP 協議的性能指標有吞吐量(throughp ut) ,即單位時間內TCP 源節點發送的字節數;延時,即源節點的應用層發出數據到目的節點應用層接收到數據的時間量。 基于Nagle 的簡化TCP 協議的吞吐率 作為一個簡單確認的TCP 協議,因為窗口始終是1 ,所以吞吐率( t
電動汽車充電接口及通信協議新國標發布
12月28日,質檢總局、國家標準委聯合國家能源局、工信部、科技部等部門在京發布新修訂的5項電動汽車充電接口及通信協議國家標準。質檢總局黨組成員、國家標準委主任田世宏,國家能源局副局長鄭柵潔出席會議并講話。 這5項國家標準分別是:《電動汽車傳導充電系統 第1部分:一般要求》《電動汽車傳導充電用
操縱MCU-SPI接口以訪問非標準SPI-ADC(二)
圖4.AD7768 FORMATx = 1×時序圖,僅通過DOUT0輸出。STM32F429微控制器SPI通過一條DOUT線讀取AD7768代碼如圖4所示,當FORMATx = 11或10時,通道0至通道7僅通過DOUT0輸出數據。在標準工作模式下,AD7768/AD7768-4作為主機工作
拉線位移傳感器原理、設計方案和接線圖(二)
2、硬件接口電路設計數據處理單元由磁敏角度感應器、微處理器單元、通信接口以及輸出模塊,具體的功能框如圖2所示。通過分析圖2,磁敏角度感應器選用MLX90316,它將拉線位移所導致的磁鐵磁場轉動的角度轉換為磁敏角度。微處理器單元選用32位嵌入式ARM用于對接收到的磁敏角度數據進行處理,完成磁敏
基于Nagle算法的嵌入式TCP協議(一)
隨著嵌入式系統的發展,在嵌入式系統中實現網絡連接已成為研究熱點,廣泛使用的廉價8/ 16 位嵌入式處理器的性能不足與網絡協議的復雜構成了尖銳的矛盾。嵌入式Internet 技術的核心是在嵌入式系統中實現TCP/ IP 協議簇, TCP 協議的機制比較復雜,對8/ 16 位嵌入式處理器的存儲能力和
一種基于物聯網技術的氦質譜檢漏系統
針對現有氦質譜檢漏系統的技術缺陷,提出了一種基于物聯網技術的氦質譜檢漏系統的設計與實現方案。該系統綜合了嵌入式與ZigBee、WiFi等物聯網技術,由主控模塊、采集模塊、執行模塊等組成;主控模塊可實時整合氦質譜檢漏儀與采集模塊的數據信息,控制執行模塊自動完成檢漏流程,并利用灰度算法預測檢漏信號的穩定
操縱MCU-SPI接口以訪問非標準SPI-ADC(三)
MCU固件開發注意事項當軟件處于中斷模式時,DCLK運行速率可以高達4 MHz,實現8 kSPS的ODR。軟件應進入中斷處理程序,在一個半DCLK周期(375 ns)內啟動SPI。為使軟件更輕松地進入中斷例程,MCU可以在DCLK上升沿讀取數據,從而提供額外的半個DCLK周期時間。但是,t5
操縱MCU-SPI接口以訪問非標準SPI-ADC(四)
在以下使用案例中,32F429IDISCOVERY使用SPI4作為SPI主機,SPI5作為SPI從機,通過DOUTA和DOUTB接收EVAL-AD7606B-FMCZ數據,如圖8所示。AD7606B是一款16位同步采樣模數轉換數據采集系統(DAS),具有八個通道,每個通道均包含模擬輸入箝位保護、可編
操縱MCU-SPI接口以訪問非標準SPI-ADC(一)
問題:能否用MCU訪問非標準SPI接口?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?答案:可以,但可能需要做一些額外的努力。簡介當前許多精密模數轉換器(ADC)具有串行外設接口(SPI)或某種串行接口,用以與包括微控制器單元(MCU)、DSP和FPGA在內的
趣味SPI總線解析(一)
什么是SPI?SPI全稱是串行外設接口(Serial Peripheral Interface),是由Motorola提出的一種全雙工(全雙工指可以同時(瞬時)進行信號的雙向傳輸(A→B且B→A))同步串行通信接口,通信波特率可以高達5Mbps,但具體速度大小取決于SPI硬件。SPI總線只需