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

電子發燒友App

硬聲App

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

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

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>MM32F013x——LIN 通信

MM32F013x——LIN 通信

2021-03-28 | pdf | 269.45KB | 次下載 | 5積分

資料介紹

隨著汽車電子技術的高速發展和廣泛應用,實現智能化和網絡化是汽車發展的必然趨勢。為簡化日益增加的汽車電控設備的線路連接,提升系統的可靠性和故障診斷水平,實現各電控設備之間的數據資源共享,并建成開發的標準化、模塊化結構,汽車網絡總線技術得到了很大發展。目前,已經開發出多種總線,如控制器局域網總線CAN、車內網絡總線LIN、高速容錯網絡總線FlexRay、面向媒體的系統傳輸總線MOST、更高帶寬和傳輸速率的車載以太網Ethernet等,這里給大家介紹在MM32F013x上實現LIN通信的功能應用。

Part.1 什么是LIN

LIN 是 Local Interconnect Network 的縮寫,是基于 UART/SCI(Universal Asynchronous Receiver-Transmitter /Serial Communication Interface,通用異步收發器/串行通信接口)的低成本串行通信協議,可用于汽車、家電、辦公設備等多種領域。本文主要針對在MM32F013x上實現LIN在分布式的汽車電子網絡系統中的應用。

LIN總線特點

  • 極少的信號線即可實現國際標準ISO9141 規定
  • 傳輸速率最高可達20Kbit/s
  • 單主控器/多從設備模式無需仲裁機制
  • 從節點不需晶振或陶瓷震蕩器就能實現自同步,節省了從設備的硬件成本
  • 保證信號傳輸的延遲時間
  • 不需要改變LIN 從節點的硬件和軟件就可以在網絡上增加節點
  • 通常一個LIN 網絡上節點數目小于12 個共有64 個標志符


Part.2 LIN總線 幀結構

幀(Frame)包含幀頭(Header)和應答(Response)兩部分。

幀頭包括同步間隔段、同步段以及PID(Protected Identifier,受保護ID)段,應答包括數據段和校驗和段。

如圖所示,其中值“0”為顯性電平(Dominant),值“1”為隱性電平(Recessive),總線上實行“線-與”:當總線上有大于等于一個節點發送顯性電平時,總線呈顯性電平;所有的節點都發送隱性電平或不發送信息(不發送任何信息時總線默認呈隱性電平)時,總線才呈現隱性電平,即顯性電平起主導作用。


Part.3 程序配置

01、初始化MM32F013x UART1串口

從官網下載MM32F013x例程,參考MM32F0133C7P的UART例程的初始化以及中斷服務函數,這里不在贅述。

02、LIN的發送

2.1 同步間隔段的發送

UART內部有Break信號的發送,通過使能LIN,即可實現LIN的間隔段,代碼如下:

bool LINSendbreak(void)
{
uint16_t Tempcnt = 0;
UART2->CCR |= UART_CCR_LIN; //LIN Enable
UART2->CCR |= UART_CCR_BRK; //Send Break
while ((UART2->ISR & 0x00000080) == 0) //TXBRK_INTF
{
Tempcnt++;
if (Tempcnt > 5000)
return (false);
}
return (true);
}

2.2 數據的發送

數據的發送沿用原有的UART接口數據發送即可:

bool LINSendChar(uint8_t ch)
{
uint16_t Tempcnt = 0;

while ((UART2->CSR & UART_IT_TXIEN) == 0)//The loop is sent until it is finished
{
Tempcnt++;
if (Tempcnt > 5000)
return (false);
}
UART2->TDR = (ch & (uint16_t)0x00FF);
return (true);
}

2.3 數據包的發送

有了上面2個基礎函數進行發送,現在來看下數據包的具體發送,從下圖中可以看出數據包是根據保護段的定義來進行區分是發送信號幀還是診斷幀。


信號幀的數據就可以做成以下的方式:

bool LINSendMsg(void)
{
uint8_t check_sum, i;
frame_send.error = 0;
if (!LINSendbreak()) //Send Break
return (false);
if (!LINSendChar(0x55)) //Send Sync Byte
return (false);
msg_send.Data[0] = LINCalcParity(msg_send.Data[0]);
for (i = 0; i < 9; i++)
{
if (!LINSendChar(msg_send.Data[i])) //Send Data
return (false);
}
check_sum = LINCalcChecksum(msg_send.Data, 1);
if (!LINSendChar(check_sum)) //Send Checksum
return (false);
frame_send.state = IDLE;
return (true);
}

而診斷幀的就是:

bool LINSendID(void)
{
if (!LINSendbreak())
return (false);
if (!LINSendChar(0x55))
return (false);
msg_send.Data[0] = LINCalcParity(msg_send.Data[0]);
if (!LINSendChar(msg_send.Data[i]))
return (false);
return (true);
}

這樣就可以在等待UART中斷函數里收到從機返回的數據。

2.4 從機的接受與發送

從機收數據與正常的串口一樣,只需要做BRK信號的處理即可,從機收到數據以后按正常的返回數據,返回數據就不需要發送BRK信號。

if (LIN_RxBuff[1] == LIN_PID_60_0x3C)
{
msg_send1.Data[0] = 0x3C;
msg_send1.Data[0] = LINCalcParity(msg_send1.Data[0]);
UART2->ICR |= UART_ICR_RXIDLE; //clear idle int bit
UART2->IER |= UART_IER_RXIDLE; //enable uart rx idle int
for (i = 1; i < 9; i++)
{
if (!LINSendChar(msg_send1.Data[i]))
return (false);
}
check_sum = LINCalcChecksum(msg_send1.Data, 1);
if (!LINSendChar(check_sum))
return (false);
}

Part.4 MM32F013x LIN通信功能演示

通過邏輯分析儀可以看到信號幀的數據:


而診斷幀數據就有從機回應的數據:


有這個演示作為基礎就可以開發LIN的通訊產品了。

轉自:靈動MM32MCU

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1感應筆電路圖
  2. 0.06 MB   |  7次下載  |  免費
  3. 2美的電磁爐維修手冊大全
  4. 1.56 MB   |  5次下載  |  5 積分
  5. 3Cortex-M3/M4F指令集技術用戶手冊
  6. 2.28MB   |  3次下載  |  免費
  7. 4SMD LED選型手冊 貼片燈珠
  8. 5.47 MB   |  3次下載  |  免費
  9. 5基于PLC的拉絲機張力控制系統研究
  10. 0.14 MB   |  2次下載  |  5 積分
  11. 6LZC3106G高性能諧振控制器中文手冊
  12. 1.29 MB   |  1次下載  |  1 積分
  13. 7JL2233B集成電平轉換功能的LDO中文手冊
  14. 0.50 MB   |  1次下載  |  免費
  15. 8加密芯片的一種破解方法和對應加密方案改進設計
  16. 0.29 MB   |  1次下載  |  免費

本月

  1. 1使用單片機實現七人表決器的程序和仿真資料免費下載
  2. 2.96 MB   |  44次下載  |  免費
  3. 2UC3842/3/4/5電源管理芯片中文手冊
  4. 1.75 MB   |  19次下載  |  免費
  5. 3華瑞昇CR216芯片數字萬用表規格書附原理圖及校正流程方法
  6. 0.74 MB   |  14次下載  |  3 積分
  7. 4DMT0660數字萬用表產品說明書
  8. 0.70 MB   |  13次下載  |  免費
  9. 53314A函數發生器維修手冊
  10. 16.30 MB   |  13次下載  |  免費
  11. 6TPS54202H降壓轉換器評估模塊用戶指南
  12. 1.02MB   |  8次下載  |  免費
  13. 7STM32F101x8/STM32F101xB手冊
  14. 1.69 MB   |  8次下載  |  1 積分
  15. 8感應筆電路圖
  16. 0.06 MB   |  7次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420062次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73807次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分
主站蜘蛛池模板: 欧美黑人三级| 天堂资源站| 丁香婷婷基地| 四虎免费影院在线播放| 午夜精品视频任你躁| 蝌蚪自拍网二区| 美国bj69| www干| 性欧美性| www.色五月| 丁香六月啪| 日韩草逼| h视频日本| 黄色日本视频| 69自拍视频| 一区不卡视频| 中文字幕xxx| 国产三级久久久精品三级| 最新色站| 99热这里精品| 激情三级视频| 青青热久免费精品视频在线观看| 性夜影院爽黄a爽在线看香蕉| 免费播放视频| 2021国产成人精品国产| 色综合天天综合给合国产| 天天综合天天做天天综合| 色人久久| 精品三级网站| 天天噜夜夜操| 午夜cao| 中日韩欧美在线观看| 久热99| 四虎最新影院| 色欧美在线| 久久亚洲综合色| 午夜禁片| 欧美奇米| 在线观看一区二区三区四区| 亚洲第二色| 寄宿日记免费看|