這一天是汽車是一堆數百微控制器的滾動堆 – 只是詢問任何灰色的機械師,他會開始他的“化油器”咆哮。所有這些系統和子系統都需要在電敵對環境中互相交流,並且說誤解或甚至延遲溝通可能產生重大後果並不誇張。汽車網絡是主要的業務。汽車的大規模生產為非汽車硬件黑客提供了許多相關的收發器IC低成本。那麼為什麼我們沒有看到更多的黑客項目,這些項目利用了這種非凡的資源基礎? 汽車網絡的骨幹是控制器區域網絡(CAN)。 Hackaday自己的[Eric偶聯]是一家汽車黑客Afterordinaire,並寫了許多你想知道的關於CAN總線在一個Multipart系列中的所有東西,你肯定想在以後讀取閱讀。發動機,制動器,門和所有儀器數據評論(差速器)可以。這是快速和高的可靠性。它也很複雜,實現昂貴。 在1990年代末,眾多生產商擁有自己的專有總線協議,可以與汽車網絡的非關鍵部分一起運行:門安裝的控制台如何與門鎖司機和窗戶電機交談。它不值得雜亂,具有這樣的非關鍵和本地通信的主要罐式總線,所以子網已經擺脫了主要罐頭。這些不需要主網絡的速度或可靠性保證,並且由於成本原因,它們必須易於實現。最小的微控制器應該足以上下捲起窗戶,對吧? 在2000年代初期,本地互連網絡(LIN)規範標準化了這些子網的一種方法,重點關注實現的低成本,中等速度,可重構性和可預測行為,以便在一個主微控制器和少量奴隸之間進行通信群集。便宜,簡單,可在小型微控制器上可實現,最適合中型項目?黑客的夢想!您為什麼在您的多個微型項目中使用Lin?讓我們挖掘,你可以看看是否有任何幫助。 林協議 林“群集”,這是在行話中調用本地迷你網絡的內容,包括單個主微控制器和許多從設備組成。林先從傳統的8N1 UART串行開始,通常為19,200波特,並使用一根電線。接下來,它添加了一個協議,該協議允許將此單線用作總線,在多個從站之間共享。如果您試圖為簡單的UART串行通信滾動自己的網絡協議,則會最終與Lin等類似的東西。去獲取規範(PDF)的副本並閱讀! 每個LIN事務都是基本上相同的:主設備發送一個包含受保護標識符(PID)的標題,它指定要執行的任務。任務可以是“報告溫度傳感器2”或“設置伺服3位置”的東西。根據任務,在一個和八個字節的數據之間,按照雙字節校驗和。奴隸必須知道要響應哪些任務以及如何回應。因此,如果發送“設置伺服3位置”,則需要偵聽下一個字節並相應地響應。所有不響應命令的奴隸都可以忽略數據,直到下一個前導碼。 在“報告溫度傳感器2”的情況下,具有溫度傳感器的從機會在接收到命令後立即發送數據。因為字節長度是預先已知的,並且只允許傳感器2響應此任務,所以主人知道要仔細聆聽,例如,在反應中進行四個字節,並知道應該採取多長時間。 此輪詢系統具有主發送標題和從站發送反應的從站保證,沒有一個設備將同時訪問總線,因此LIN僅使用單個Rx / Tx線。前導碼包括同步字節(0x55),幫助從站鎖定到主時鐘,因此從設備可以在更便宜的RC時鐘源上運行,並且可以進行自動波動。 由於消息的長度提前,因此可以在計劃中編寫主機的輪詢例程的時序。主設備以定義的間隔調查網絡,如果從設備未在事務所需時間的1.4倍內響應,則會在操作中丟失。無論哪種方式,主站都在其計劃中到下一個項目,並且不會重試潛在有缺陷的奴隸,直到轉彎再次出現。這保證了所有設備的已知更新率,這使得生命更加簡單地編程主設備。 那些是基礎知識。主服務器發送PID,並遵循一系列數據字節。一切都是Comfy舊的UART,呼叫和響應,適應盡可能創建一個小型網絡。 額外 來自一名教練VI的GUI LIN配置應用程序德.. ...