mirror of
https://gitee.com/Vancouver2017/luban-lite.git
synced 2025-12-17 09:38:55 +00:00
add doc v1.1.2
This commit is contained in:
161
doc/topics/sdk/can/can_config.html
Normal file
161
doc/topics/sdk/can/can_config.html
Normal file
@@ -0,0 +1,161 @@
|
||||
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content=""/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="concept"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2024-12-02"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="can_configuration"/><meta name="DC.language" content="zh-CN"/><title>CAN 配置</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content=""/><meta name="wh-source-relpath" content="topics/sdk/can/can_config.dita"/><meta name="wh-out-relpath" content="topics/sdk/can/can_config.html"/>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
|
||||
|
||||
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
|
||||
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
|
||||
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
|
||||
|
||||
<body id="can_configuration" class="wh_topic_page frmBody">
|
||||
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
|
||||
跳转到主要内容
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="navbar navbar-default wh_header">
|
||||
<div class="container-fluid">
|
||||
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
|
||||
<div class="wh_logo_and_publication_title_container">
|
||||
<div class="wh_logo_and_publication_title">
|
||||
|
||||
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
|
||||
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
|
||||
|
||||
|
||||
|
||||
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container-fluid" id="wh_topic_container">
|
||||
<div class="row">
|
||||
|
||||
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
|
||||
|
||||
<div data-tooltip-position="bottom" class=" wh_breadcrumb "></div>
|
||||
|
||||
|
||||
|
||||
<div class="wh_right_tools">
|
||||
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
|
||||
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="wh_content_area">
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-12" id="wh_topic_body">
|
||||
|
||||
|
||||
|
||||
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic concept/concept topic concept" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/can/can_config.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">CAN 配置</h1><div class="date inPage">2 Dec 2024</div><div style="color: gray;"></div><div class="- topic/body concept/conbody body conbody"></div></article></main></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<footer class="navbar navbar-default wh_footer">
|
||||
<div class=" footer-container mx-auto ">
|
||||
<title>footer def</title>
|
||||
<style><!--
|
||||
|
||||
.p1 {
|
||||
font-family: FangZhengShuSong, Times, serif;
|
||||
}
|
||||
.p2 {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.p3 {
|
||||
font-family: "Lucida Console", "Courier New", monospace;
|
||||
}
|
||||
|
||||
--></style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="webhelp.fragment.footer">
|
||||
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
|
||||
</div><div>
|
||||
<div class="generation_time">
|
||||
Update Time: 2025-01-21
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div id="go2top" class="d-print-none">
|
||||
<span class="oxy-icon oxy-icon-up"></span>
|
||||
</div>
|
||||
|
||||
<div id="modal_img_large" class="modal">
|
||||
<span class="close oxy-icon oxy-icon-remove"></span>
|
||||
<div id="modal_img_container"></div>
|
||||
<div id="caption"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
242
doc/topics/sdk/can/can_config_lite.html
Normal file
242
doc/topics/sdk/can/can_config_lite.html
Normal file
File diff suppressed because one or more lines are too long
161
doc/topics/sdk/can/can_debug.html
Normal file
161
doc/topics/sdk/can/can_debug.html
Normal file
@@ -0,0 +1,161 @@
|
||||
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content=""/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="concept"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2024-01-19"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="can_debug_guide"/><meta name="DC.language" content="zh-CN"/><title>调试指南</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content=""/><meta name="wh-source-relpath" content="topics/sdk/can/can_debug.dita"/><meta name="wh-out-relpath" content="topics/sdk/can/can_debug.html"/>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
|
||||
|
||||
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
|
||||
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
|
||||
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
|
||||
|
||||
<body id="can_debug_guide" class="wh_topic_page frmBody">
|
||||
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
|
||||
跳转到主要内容
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="navbar navbar-default wh_header">
|
||||
<div class="container-fluid">
|
||||
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
|
||||
<div class="wh_logo_and_publication_title_container">
|
||||
<div class="wh_logo_and_publication_title">
|
||||
|
||||
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
|
||||
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
|
||||
|
||||
|
||||
|
||||
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container-fluid" id="wh_topic_container">
|
||||
<div class="row">
|
||||
|
||||
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
|
||||
|
||||
<div data-tooltip-position="bottom" class=" wh_breadcrumb "></div>
|
||||
|
||||
|
||||
|
||||
<div class="wh_right_tools">
|
||||
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
|
||||
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="wh_content_area">
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-12" id="wh_topic_body">
|
||||
|
||||
|
||||
|
||||
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic concept/concept topic concept" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/can/can_debug.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">调试指南</h1><div class="date inPage">19 Jan 2024</div><div style="color: gray;"></div><div class="- topic/body concept/conbody body conbody"><p class="- topic/p p" data-ofbid="d313516e22__20250121171819"></p></div></article></main></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<footer class="navbar navbar-default wh_footer">
|
||||
<div class=" footer-container mx-auto ">
|
||||
<title>footer def</title>
|
||||
<style><!--
|
||||
|
||||
.p1 {
|
||||
font-family: FangZhengShuSong, Times, serif;
|
||||
}
|
||||
.p2 {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.p3 {
|
||||
font-family: "Lucida Console", "Courier New", monospace;
|
||||
}
|
||||
|
||||
--></style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="webhelp.fragment.footer">
|
||||
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
|
||||
</div><div>
|
||||
<div class="generation_time">
|
||||
Update Time: 2025-01-21
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div id="go2top" class="d-print-none">
|
||||
<span class="oxy-icon oxy-icon-up"></span>
|
||||
</div>
|
||||
|
||||
<div id="modal_img_large" class="modal">
|
||||
<span class="close oxy-icon oxy-icon-remove"></span>
|
||||
<div id="modal_img_container"></div>
|
||||
<div id="caption"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
178
doc/topics/sdk/can/can_debug_lite.html
Normal file
178
doc/topics/sdk/can/can_debug_lite.html
Normal file
File diff suppressed because one or more lines are too long
268
doc/topics/sdk/can/can_design.html
Normal file
268
doc/topics/sdk/can/can_design.html
Normal file
@@ -0,0 +1,268 @@
|
||||
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content="CAN 模块的源码位于 linux-5.10/drivers/net/can/artc_can.c 较早的 linux 内核版本的 CAN 驱动都是基于字符设备驱动实现,提供的功能相对较少,数据包的排队和更高级别的传输协议必须在用户空间的应用程序实现。现在的内核版本普遍采用 socketCAN 实现 CAN 模块的驱动。socketCAN 是将 CAN 作为一种网络设备,基于 linux ..."/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="concept"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2024-12-02"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="can_design_intro"/><meta name="DC.language" content="zh-CN"/><title>设计说明</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content=""/><meta name="wh-source-relpath" content="topics/sdk/can/can_design.dita"/><meta name="wh-out-relpath" content="topics/sdk/can/can_design.html"/>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
|
||||
|
||||
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
|
||||
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
|
||||
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
|
||||
|
||||
<body id="can_design_intro" class="wh_topic_page frmBody">
|
||||
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
|
||||
跳转到主要内容
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="navbar navbar-default wh_header">
|
||||
<div class="container-fluid">
|
||||
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
|
||||
<div class="wh_logo_and_publication_title_container">
|
||||
<div class="wh_logo_and_publication_title">
|
||||
|
||||
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
|
||||
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
|
||||
|
||||
|
||||
|
||||
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container-fluid" id="wh_topic_container">
|
||||
<div class="row">
|
||||
|
||||
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
|
||||
|
||||
<div data-tooltip-position="bottom" class=" wh_breadcrumb "></div>
|
||||
|
||||
|
||||
|
||||
<div class="wh_right_tools">
|
||||
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
|
||||
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="wh_content_area">
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-lg-10 col-md-10 col-sm-10 col-xs-12" id="wh_topic_body">
|
||||
|
||||
<button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true">
|
||||
<span class="close-toc-icon-container">
|
||||
<span class="close-toc-icon"></span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic concept/concept topic concept" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/can/can_design.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">设计说明</h1><div class="date inPage">2 Dec 2024</div><div style="color: gray;">
|
||||
Read time: 2 minute(s)
|
||||
</div><div class="- topic/body concept/conbody body conbody"><p class="- topic/p p" data-ofbid="d113633e22__20250121171556">CAN 模块的源码位于<span class="+ topic/ph sw-d/filepath ph filepath">linux-5.10/drivers/net/can/artc_can.c</span></p><p class="- topic/p p" data-ofbid="d113633e26__20250121171556">较早的 linux 内核版本的 CAN
|
||||
驱动都是基于字符设备驱动实现,提供的功能相对较少,数据包的排队和更高级别的传输协议必须在用户空间的应用程序实现。现在的内核版本普遍采用 socketCAN 实现 CAN
|
||||
模块的驱动。socketCAN 是将 CAN 作为一种网络设备,基于 linux 内核的网络层实现的软件框架。</p><section class="- topic/section section" id="can_design_intro__section_smp_tcn_d1c" data-ofbid="can_design_intro__section_smp_tcn_d1c"><h2 class="- topic/title title sectiontitle">CAN 分层结构</h2>
|
||||
|
||||
<p class="- topic/p p" data-ofbid="d113633e33__20250121171556">CAN 结点的实现可以分为四层结构,各层的主要功能和作用如下图所示:</p>
|
||||
<div class="- topic/p p" data-ofbid="d113633e36__20250121171556">
|
||||
<br/><div class="imagecenter"><img class="- topic/image image imagecenter" id="can_design_intro__image_tmp_tcn_d1c" src="../../../images/can/can_arch_luban.png" alt="can_arch1"/></div><br/>
|
||||
</div>
|
||||
<p class="- topic/p p" data-ofbid="d113633e43__20250121171556">CAN 总线的对象层和传输层包括所有由 ISO/OSI 模型定义的数据链路层的服务和功能,相当于是对数据链路层功能的细分。因此,也可以将对象层和传输层看作是 CAN
|
||||
的数据链路层。</p>
|
||||
</section><section class="- topic/section section" id="can_design_intro__section_ump_tcn_d1c" data-ofbid="can_design_intro__section_ump_tcn_d1c"><h2 class="- topic/title title sectiontitle">socketCAN 驱动框架</h2>
|
||||
|
||||
<p class="- topic/p p" data-ofbid="d113633e51__20250121171556">依据 CAN 的分层模型,socketCAN 实现了具体的软件驱动框架,如下图所示(iprouter2/can-utils 只是应用层的一个示例,并不属于
|
||||
socketCAN 的内容)。</p>
|
||||
<div class="table-container"><table class="- topic/table table frame-all" id="can_design_intro__table_vmp_tcn_d1c" data-ofbid="can_design_intro__table_vmp_tcn_d1c" data-cols="3"><caption></caption><colgroup><col style="width:33.33333333333333%"/><col style="width:33.33333333333333%"/><col style="width:33.33333333333333%"/></colgroup><thead class="- topic/thead thead"><tr class="- topic/row"><th class="- topic/entry entry colsep-1 rowsep-1" id="can_design_intro__table_vmp_tcn_d1c__entry__1">OSI 七层网络模型</th><th class="- topic/entry entry colsep-1 rowsep-1" id="can_design_intro__table_vmp_tcn_d1c__entry__2">CAN 模型</th><th class="- topic/entry entry colsep-0 rowsep-1" id="can_design_intro__table_vmp_tcn_d1c__entry__3">socketCAN 框架实现</th></tr></thead><tbody class="- topic/tbody tbody"><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__1">应用层</td><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__2" rowspan="5">应用层</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__3" rowspan="5">iprouter2/can-utils</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__1">表示层</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__1">会话层</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__1">传输层</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__1">网络层</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__1" rowspan="2">数据链路层</td><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__2">对象层</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__3">CAN core/CAN driver</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__2">传输层</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_vmp_tcn_d1c__entry__3">CAN 控制器</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-0" headers="can_design_intro__table_vmp_tcn_d1c__entry__1">物理层</td><td class="- topic/entry entry colsep-1 rowsep-0" headers="can_design_intro__table_vmp_tcn_d1c__entry__2">物理层</td><td class="- topic/entry entry colsep-0 rowsep-0" headers="can_design_intro__table_vmp_tcn_d1c__entry__3">CAN 收发器</td></tr></tbody></table></div>
|
||||
<p class="- topic/p p" data-ofbid="d113633e107__20250121171556">CAN core 主要是实现了 CAN 的 socket 配置,并向 driver 提供一些调用的接口,该部分内容由 socketCAN 框架负责。传输层和物理层所对应的
|
||||
CAN 控制器和收发器皆由硬件实现,所以驱动开发的主要工作是实现 driver 部分的代码。</p>
|
||||
<p class="- topic/p p" data-ofbid="d113633e110__20250121171556">CAN 的底层驱动实现主要包括以下几部分:</p>
|
||||
<ul class="- topic/ul ul" id="can_design_intro__ul_wmp_tcn_d1c" data-ofbid="can_design_intro__ul_wmp_tcn_d1c"><li class="- topic/li li" data-ofbid="d113633e115__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e117__20250121171556">设置 CAN 的位时序</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e120__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e122__20250121171556">获取 CAN 的发送/接收计数</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e125__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e127__20250121171556">CAN 设备的打开/关闭</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e130__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e132__20250121171556">CAN 设备发送/接收帧信息的操作</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e135__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e137__20250121171556">CAN 设备错误处理的操作</p>
|
||||
</li></ul>
|
||||
</section><section class="- topic/section section" id="can_design_intro__section_w2h_dln_4dc" data-ofbid="can_design_intro__section_w2h_dln_4dc"><h2 class="- topic/title title sectiontitle">关键流程设计</h2>
|
||||
|
||||
<div class="- topic/p p" data-ofbid="d113633e146__20250121171556">
|
||||
<div class="- topic/div div" id="can_design_intro__section_mws_wcn_d1c">
|
||||
<strong class="+ topic/ph hi-d/b ph b">初始化流程</strong>
|
||||
<p class="- topic/p p" data-ofbid="d113633e153__20250121171556">CAN 模块的初始化流程如下:</p>
|
||||
<ol class="- topic/ol ol" id="can_design_intro__ol_nws_wcn_d1c" data-ofbid="can_design_intro__ol_nws_wcn_d1c"><li class="- topic/li li" data-ofbid="d113633e157__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e159__20250121171556">释放 reset 和 clock 信号</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e162__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e164__20250121171556">调用 candev,给 device 类型的变量分配空间</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e167__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e169__20250121171556">初始化结构体 priv 的各个成员变量</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e172__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e174__20250121171556">调用 candev 注册 CAN 设备</p>
|
||||
</li></ol>
|
||||
</div>
|
||||
<div class="- topic/div div" id="can_design_intro__section_ows_wcn_d1c"><strong class="+ topic/ph hi-d/b ph b">中断处理流程</strong><div class="- topic/p p" data-ofbid="d113633e182__20250121171556">CAN 的中断处理流程由两种方式:<ol class="- topic/ol ol" id="can_design_intro__ol_pws_wcn_d1c" data-ofbid="can_design_intro__ol_pws_wcn_d1c"><li class="- topic/li li" data-ofbid="d113633e185__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e187__20250121171556">利用内核中网络的 NAPI 机制,定义一个轮询函数,将该函数加入 NAPI 链表,接收中断触发时,由 schedule
|
||||
调度轮询函数的执行,以轮询方式接收所有的数据包直到接收结束。</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e190__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e192__20250121171556">不采用 NAPI 机制,而是直接在中断中进行轮询,达到最大轮询次数后退出中断。</p>
|
||||
</li></ol></div><div class="- topic/p p" data-ofbid="d113633e195__20250121171556">内核官方文档推荐参考的 MSCAN 和 SJA1000 的驱动中,分别采用了上述的两种方式实现。AIC 的 CAN
|
||||
模块驱动中断处理流程是采用的第二种方式,即在中断中进行限定次数的轮询。驱动中设置的最大轮询次数为 20。中断处理流程如下:<ol class="- topic/ol ol" id="can_design_intro__ol_qws_wcn_d1c" data-ofbid="can_design_intro__ol_qws_wcn_d1c"><li class="- topic/li li" data-ofbid="d113633e198__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e200__20250121171556">进入中断处理函数后,判断有中断标志置位且轮询次数不超过 20,进入 while 循环。</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e203__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e205__20250121171556">若为发送结束中断,则 stats 的 tx_bytes 和 packets 增加,记录发送的数据字节大小和包个数</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e208__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e210__20250121171556">若为接收中断,则循环接收数据,直到 RXFIFO 为空</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e213__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e215__20250121171556">若出现仲裁错误、总线错误、主动错误、被动错误、数据溢出。则需要进行错误处理,并上报错误类型。</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d113633e218__20250121171556">
|
||||
<p class="- topic/p p" data-ofbid="d113633e220__20250121171556">清空中断标志</p>
|
||||
</li></ol></div></div>
|
||||
<div class="- topic/div div" id="can_design_intro__section_rws_wcn_d1c"><strong class="+ topic/ph hi-d/b ph b">数据发送流程</strong><p class="- topic/p p" data-ofbid="d113633e227__20250121171556">由于 CAN 每帧的数据量只有 8byte,所以发送数据时没有采用 DMA
|
||||
或中断方式,而是直接调用发送函数将数据发送出去。CAN 模块驱动的数据发送流程如下:</p><div class="- topic/p p" data-ofbid="d113633e229__20250121171556">
|
||||
<br/><div class="imagecenter"><img class="- topic/image image imagecenter" id="can_design_intro__image_sws_wcn_d1c" src="../../../images/can/start_xmit_lb.png" width="384" alt="start_xmit1"/></div><br/>
|
||||
</div></div>
|
||||
</div>
|
||||
</section><section class="- topic/section section" id="can_design_intro__section_u4v_dln_4dc" data-ofbid="can_design_intro__section_u4v_dln_4dc"><h2 class="- topic/title title sectiontitle">数据结构设计</h2>
|
||||
|
||||
<div class="- topic/p p" data-ofbid="d113633e242__20250121171556">
|
||||
<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="can_design_intro__codeblock_zty_ycn_d1c" data-ofbid="can_design_intro__codeblock_zty_ycn_d1c"><strong class="hl-keyword">struct</strong> artc_priv {
|
||||
<strong class="hl-keyword">struct</strong> can_priv can; <em class="hl-comment">//CAN 公共私有数据结构体</em>
|
||||
<strong class="hl-keyword">void</strong> __iomem *base; <em class="hl-comment">//CAN 控制器寄存器基地址</em>
|
||||
<strong class="hl-keyword">struct</strong> clk *clk;
|
||||
<strong class="hl-keyword">struct</strong> reset_control *rst;
|
||||
};</pre>
|
||||
</div>
|
||||
</section><section class="- topic/section section" id="can_design_intro__section_h5t_fln_4dc" data-ofbid="can_design_intro__section_h5t_fln_4dc"><h2 class="- topic/title title sectiontitle">接口设计</h2>
|
||||
|
||||
<div class="- topic/p p" data-ofbid="d113633e253__20250121171556">
|
||||
<div class="table-container"><table class="- topic/table table frame-all" id="can_design_intro__table_yvn_1dn_d1c" data-ofbid="can_design_intro__table_yvn_1dn_d1c" data-cols="2"><caption class="- topic/title title tablecap" data-caption-side="top" data-is-repeated="true"><span class="table--title-label">表<span class="table--title-label-number"> 1</span><span class="table--title-label-punctuation">. </span></span><span class="table--title">artc_can_set_bittiming</span></caption><colgroup><col style="width:25%"/><col style="width:75%"/></colgroup><thead class="- topic/thead thead"><tr class="- topic/row"><th class="- topic/entry entry colsep-1 rowsep-1" id="can_design_intro__table_yvn_1dn_d1c__entry__1">函数原型</th><th class="- topic/entry entry colsep-0 rowsep-1" id="can_design_intro__table_yvn_1dn_d1c__entry__2">static int artc_can_set_bittiming(struct net_device
|
||||
*dev)</th></tr></thead><tbody class="- topic/tbody tbody"><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_yvn_1dn_d1c__entry__1">功能说明</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_yvn_1dn_d1c__entry__2">设置 CAN 模块的位时序</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_yvn_1dn_d1c__entry__1">参数定义</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_yvn_1dn_d1c__entry__2">dev:指向网络设备的指针</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_yvn_1dn_d1c__entry__1">返回值</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_yvn_1dn_d1c__entry__2">0:执行成功</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-0" headers="can_design_intro__table_yvn_1dn_d1c__entry__1">注意事项</td><td class="- topic/entry entry colsep-0 rowsep-0" headers="can_design_intro__table_yvn_1dn_d1c__entry__2">-</td></tr></tbody></table></div>
|
||||
<div class="table-container"><table class="- topic/table table frame-all" id="can_design_intro__table_zvn_1dn_d1c" data-ofbid="can_design_intro__table_zvn_1dn_d1c" data-cols="2"><caption class="- topic/title title tablecap" data-caption-side="top" data-is-repeated="true"><span class="table--title-label">表<span class="table--title-label-number"> 2</span><span class="table--title-label-punctuation">. </span></span><span class="table--title">artc_can_get_berr_counter</span></caption><colgroup><col style="width:25%"/><col style="width:75%"/></colgroup><thead class="- topic/thead thead"><tr class="- topic/row"><th class="- topic/entry entry colsep-1 rowsep-1" id="can_design_intro__table_zvn_1dn_d1c__entry__1">函数原型</th><th class="- topic/entry entry colsep-0 rowsep-1" id="can_design_intro__table_zvn_1dn_d1c__entry__2">static int artc_can_get_berr_counter(const struct net_device
|
||||
*dev, struct can_berr_counter *bec)</th></tr></thead><tbody class="- topic/tbody tbody"><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_zvn_1dn_d1c__entry__1">功能说明</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_zvn_1dn_d1c__entry__2">获取 CAN 模块发送、接收错误计数值</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_zvn_1dn_d1c__entry__1">参数定义</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_zvn_1dn_d1c__entry__2">dev:指向网络设备的指针<p class="- topic/p p" data-ofbid="d113633e312__20250121171556">bec:获取的发送/接收错误计数值存储到该指针所指向的结构体</p></td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_zvn_1dn_d1c__entry__1">返回值</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_zvn_1dn_d1c__entry__2">0:执行成功</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-0" headers="can_design_intro__table_zvn_1dn_d1c__entry__1">注意事项</td><td class="- topic/entry entry colsep-0 rowsep-0" headers="can_design_intro__table_zvn_1dn_d1c__entry__2">-</td></tr></tbody></table></div>
|
||||
<div class="table-container"><table class="- topic/table table frame-all" id="can_design_intro__table_awn_1dn_d1c" data-ofbid="can_design_intro__table_awn_1dn_d1c" data-cols="2"><caption class="- topic/title title tablecap" data-caption-side="top" data-is-repeated="true"><span class="table--title-label">表<span class="table--title-label-number"> 3</span><span class="table--title-label-punctuation">. </span></span><span class="table--title">artc_can_start_xmit</span></caption><colgroup><col style="width:25%"/><col style="width:75%"/></colgroup><thead class="- topic/thead thead"><tr class="- topic/row"><th class="- topic/entry entry colsep-1 rowsep-1" id="can_design_intro__table_awn_1dn_d1c__entry__1">函数原型</th><th class="- topic/entry entry colsep-0 rowsep-1" id="can_design_intro__table_awn_1dn_d1c__entry__2">static netdev_tx_t artc_can_start_xmit(struct sk_buff *skb,
|
||||
struct net_device *dev)</th></tr></thead><tbody class="- topic/tbody tbody"><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_awn_1dn_d1c__entry__1">功能说明</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_awn_1dn_d1c__entry__2">CAN 设备帧发送函数</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_awn_1dn_d1c__entry__1">参数定义</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_awn_1dn_d1c__entry__2">skb:指向套接字缓冲区<p class="- topic/p p" data-ofbid="d113633e348__20250121171556">dev:指向网络设备的指针</p></td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_awn_1dn_d1c__entry__1">返回值</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_awn_1dn_d1c__entry__2">0:执行成功</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-0" headers="can_design_intro__table_awn_1dn_d1c__entry__1">注意事项</td><td class="- topic/entry entry colsep-0 rowsep-0" headers="can_design_intro__table_awn_1dn_d1c__entry__2">-</td></tr></tbody></table></div>
|
||||
<div class="table-container"><table class="- topic/table table frame-all" id="can_design_intro__table_bwn_1dn_d1c" data-ofbid="can_design_intro__table_bwn_1dn_d1c" data-cols="2"><caption class="- topic/title title tablecap" data-caption-side="top" data-is-repeated="true"><span class="table--title-label">表<span class="table--title-label-number"> 4</span><span class="table--title-label-punctuation">. </span></span><span class="table--title">artc_can_open</span></caption><colgroup><col style="width:25%"/><col style="width:75%"/></colgroup><thead class="- topic/thead thead"><tr class="- topic/row"><th class="- topic/entry entry colsep-1 rowsep-1" id="can_design_intro__table_bwn_1dn_d1c__entry__1">函数原型</th><th class="- topic/entry entry colsep-0 rowsep-1" id="can_design_intro__table_bwn_1dn_d1c__entry__2">static int artc_can_open(struct net_device *dev)</th></tr></thead><tbody class="- topic/tbody tbody"><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_bwn_1dn_d1c__entry__1">功能说明</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_bwn_1dn_d1c__entry__2">打开 CAN 网络设备</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_bwn_1dn_d1c__entry__1">参数定义</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_bwn_1dn_d1c__entry__2">dev:指向网络设备的指针</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_bwn_1dn_d1c__entry__1">返回值</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_bwn_1dn_d1c__entry__2">0:执行成功<0:执行失败</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-0" headers="can_design_intro__table_bwn_1dn_d1c__entry__1">注意事项</td><td class="- topic/entry entry colsep-0 rowsep-0" headers="can_design_intro__table_bwn_1dn_d1c__entry__2">-</td></tr></tbody></table></div>
|
||||
<div class="table-container"><table class="- topic/table table frame-all" id="can_design_intro__table_cwn_1dn_d1c" data-ofbid="can_design_intro__table_cwn_1dn_d1c" data-cols="2"><caption class="- topic/title title tablecap" data-caption-side="top" data-is-repeated="true"><span class="table--title-label">表<span class="table--title-label-number"> 5</span><span class="table--title-label-punctuation">. </span></span><span class="table--title">artc_can_close</span></caption><colgroup><col style="width:25%"/><col style="width:75%"/></colgroup><thead class="- topic/thead thead"><tr class="- topic/row"><th class="- topic/entry entry colsep-1 rowsep-1" id="can_design_intro__table_cwn_1dn_d1c__entry__1">函数原型</th><th class="- topic/entry entry colsep-0 rowsep-1" id="can_design_intro__table_cwn_1dn_d1c__entry__2">static int artc_can_close(struct net_device *dev)</th></tr></thead><tbody class="- topic/tbody tbody"><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_cwn_1dn_d1c__entry__1">功能说明</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_cwn_1dn_d1c__entry__2">关闭 CAN 网络设备</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_cwn_1dn_d1c__entry__1">参数定义</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_cwn_1dn_d1c__entry__2">dev:指向网络设备的指针</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_cwn_1dn_d1c__entry__1">返回值</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_cwn_1dn_d1c__entry__2">0:执行成功</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-0" headers="can_design_intro__table_cwn_1dn_d1c__entry__1">注意事项</td><td class="- topic/entry entry colsep-0 rowsep-0" headers="can_design_intro__table_cwn_1dn_d1c__entry__2">-</td></tr></tbody></table></div>
|
||||
<div class="table-container"><table class="- topic/table table frame-all" id="can_design_intro__table_dwn_1dn_d1c" data-ofbid="can_design_intro__table_dwn_1dn_d1c" data-cols="2"><caption class="- topic/title title tablecap" data-caption-side="top" data-is-repeated="true"><span class="table--title-label">表<span class="table--title-label-number"> 6</span><span class="table--title-label-punctuation">. </span></span><span class="table--title">artc_can_rx</span></caption><colgroup><col style="width:25%"/><col style="width:75%"/></colgroup><thead class="- topic/thead thead"><tr class="- topic/row"><th class="- topic/entry entry colsep-1 rowsep-1" id="can_design_intro__table_dwn_1dn_d1c__entry__1">函数原型</th><th class="- topic/entry entry colsep-0 rowsep-1" id="can_design_intro__table_dwn_1dn_d1c__entry__2">static void artc_can_rx(struct net_device *dev)</th></tr></thead><tbody class="- topic/tbody tbody"><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_dwn_1dn_d1c__entry__1">功能说明</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_dwn_1dn_d1c__entry__2">CAN 设备的接收函数。该函数在中断中被调用,读出 BUF 中的数据并组合成帧,将帧存储到 buff
|
||||
结构体中</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_dwn_1dn_d1c__entry__1">参数定义</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_dwn_1dn_d1c__entry__2">dev:指向网络设备的指针</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_dwn_1dn_d1c__entry__1">返回值</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_dwn_1dn_d1c__entry__2">无</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-0" headers="can_design_intro__table_dwn_1dn_d1c__entry__1">注意事项</td><td class="- topic/entry entry colsep-0 rowsep-0" headers="can_design_intro__table_dwn_1dn_d1c__entry__2">-</td></tr></tbody></table></div>
|
||||
<div class="table-container"><table class="- topic/table table frame-all" id="can_design_intro__table_ewn_1dn_d1c" data-ofbid="can_design_intro__table_ewn_1dn_d1c" data-cols="2"><caption class="- topic/title title tablecap" data-caption-side="top" data-is-repeated="true"><span class="table--title-label">表<span class="table--title-label-number"> 7</span><span class="table--title-label-punctuation">. </span></span><span class="table--title">artc_can_err</span></caption><colgroup><col style="width:25%"/><col style="width:75%"/></colgroup><thead class="- topic/thead thead"><tr class="- topic/row"><th class="- topic/entry entry colsep-1 rowsep-1" id="can_design_intro__table_ewn_1dn_d1c__entry__1">函数原型</th><th class="- topic/entry entry colsep-0 rowsep-1" id="can_design_intro__table_ewn_1dn_d1c__entry__2">static int artc_can_err(struct net_device *dev, u8 isrc, u8
|
||||
status)</th></tr></thead><tbody class="- topic/tbody tbody"><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_ewn_1dn_d1c__entry__1">参数定义</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_ewn_1dn_d1c__entry__2">dev:指向网络设备的指针 isrc:中断标志位 status:中断状态位</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can_design_intro__table_ewn_1dn_d1c__entry__1">返回值</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can_design_intro__table_ewn_1dn_d1c__entry__2">0:执行成功<0:执行失败</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-0" headers="can_design_intro__table_ewn_1dn_d1c__entry__1">注意事项</td><td class="- topic/entry entry colsep-0 rowsep-0" headers="can_design_intro__table_ewn_1dn_d1c__entry__2">-</td></tr></tbody></table></div>
|
||||
</div>
|
||||
</section></div></article></main></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav role="navigation" id="wh_topic_toc" aria-label="On this page" class="col-lg-2 d-none d-lg-block navbar d-print-none">
|
||||
<div id="wh_topic_toc_content">
|
||||
|
||||
<div class=" wh_topic_toc "><div class="wh_topic_label">在本页上</div><ul><li class="section-item"><div class="section-title"><a href="#can_design_intro__section_smp_tcn_d1c" data-tocid="can_design_intro__section_smp_tcn_d1c">CAN 分层结构</a></div></li><li class="section-item"><div class="section-title"><a href="#can_design_intro__section_ump_tcn_d1c" data-tocid="can_design_intro__section_ump_tcn_d1c">socketCAN 驱动框架</a></div></li><li class="section-item"><div class="section-title"><a href="#can_design_intro__section_w2h_dln_4dc" data-tocid="can_design_intro__section_w2h_dln_4dc">关键流程设计</a></div></li><li class="section-item"><div class="section-title"><a href="#can_design_intro__section_u4v_dln_4dc" data-tocid="can_design_intro__section_u4v_dln_4dc">数据结构设计</a></div></li><li class="section-item"><div class="section-title"><a href="#can_design_intro__section_h5t_fln_4dc" data-tocid="can_design_intro__section_h5t_fln_4dc">接口设计</a></div></li></ul></div>
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<footer class="navbar navbar-default wh_footer">
|
||||
<div class=" footer-container mx-auto ">
|
||||
<title>footer def</title>
|
||||
<style><!--
|
||||
|
||||
.p1 {
|
||||
font-family: FangZhengShuSong, Times, serif;
|
||||
}
|
||||
.p2 {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.p3 {
|
||||
font-family: "Lucida Console", "Courier New", monospace;
|
||||
}
|
||||
|
||||
--></style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="webhelp.fragment.footer">
|
||||
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
|
||||
</div><div>
|
||||
<div class="generation_time">
|
||||
Update Time: 2025-01-21
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div id="go2top" class="d-print-none">
|
||||
<span class="oxy-icon oxy-icon-up"></span>
|
||||
</div>
|
||||
|
||||
<div id="modal_img_large" class="modal">
|
||||
<span class="close oxy-icon oxy-icon-remove"></span>
|
||||
<div id="modal_img_container"></div>
|
||||
<div id="caption"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
304
doc/topics/sdk/can/can_design_lite.html
Normal file
304
doc/topics/sdk/can/can_design_lite.html
Normal file
File diff suppressed because one or more lines are too long
198
doc/topics/sdk/can/can_faq.html
Normal file
198
doc/topics/sdk/can/can_faq.html
Normal file
@@ -0,0 +1,198 @@
|
||||
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content="接收线程打印导致丢帧问题 如果接收线程中存在打印,那么当总线波特率较高,发送数据较多时,易出现丢帧问题。 问题原因 :打印速率较慢,接收的一帧 CAN 数据还没打印完,后续的 CAN 数据又接收了,容易发生 overflow,导致丢帧。 解决办法 :在接收线程中不要加打印。SDK 中示例 demo 的接收线程有打印只是为了展示是否有接收到数据。 RTT 硬件过滤器 hdr 设置 在 ..."/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="topic"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2024-12-04"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="id"/><meta name="DC.language" content="zh-CN"/><title>常见问题</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content=""/><meta name="wh-source-relpath" content="topics/sdk/can/can_faq.dita"/><meta name="wh-out-relpath" content="topics/sdk/can/can_faq.html"/>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
|
||||
|
||||
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
|
||||
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
|
||||
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
|
||||
|
||||
<body id="id" class="wh_topic_page frmBody">
|
||||
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
|
||||
跳转到主要内容
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="navbar navbar-default wh_header">
|
||||
<div class="container-fluid">
|
||||
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
|
||||
<div class="wh_logo_and_publication_title_container">
|
||||
<div class="wh_logo_and_publication_title">
|
||||
|
||||
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
|
||||
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
|
||||
|
||||
|
||||
|
||||
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container-fluid" id="wh_topic_container">
|
||||
<div class="row">
|
||||
|
||||
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
|
||||
|
||||
<div data-tooltip-position="bottom" class=" wh_breadcrumb "></div>
|
||||
|
||||
|
||||
|
||||
<div class="wh_right_tools">
|
||||
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
|
||||
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="wh_content_area">
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-lg-10 col-md-10 col-sm-10 col-xs-12" id="wh_topic_body">
|
||||
|
||||
<button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true">
|
||||
<span class="close-toc-icon-container">
|
||||
<span class="close-toc-icon"></span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic topic" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/can/can_faq.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">常见问题</h1><div class="date inPage">4 Dec 2024</div><div style="color: gray;">
|
||||
Read time: 1 minute(s)
|
||||
</div><div class="- topic/body body"><section class="- topic/section section" id="id__section_jmv_gpf_fdc" data-ofbid="id__section_jmv_gpf_fdc"><h2 class="- topic/title title sectiontitle">接收线程打印导致丢帧问题</h2>
|
||||
|
||||
<p class="- topic/p p" data-ofbid="d111855e22__20250121171553">如果接收线程中存在打印,那么当总线波特率较高,发送数据较多时,易出现丢帧问题。</p>
|
||||
<p class="- topic/p p" data-ofbid="d111855e25__20250121171553"><strong class="+ topic/ph hi-d/b ph b">问题原因</strong>:打印速率较慢,接收的一帧 CAN 数据还没打印完,后续的 CAN 数据又接收了,容易发生 overflow,导致丢帧。</p>
|
||||
<p class="- topic/p p" data-ofbid="d111855e30__20250121171553"><strong class="+ topic/ph hi-d/b ph b">解决办法</strong>:在接收线程中不要加打印。SDK 中示例 demo 的接收线程有打印只是为了展示是否有接收到数据。</p>
|
||||
</section><section class="- topic/section section" id="id__section_rwj_cvh_fdc" data-ofbid="id__section_rwj_cvh_fdc"><h2 class="- topic/title title sectiontitle"> RTT 硬件过滤器 hdr 设置</h2>
|
||||
|
||||
<div class="- topic/p p" data-ofbid="d111855e40__20250121171553">在 RT-Thread 的 CAN 框架中,hdr 用来表示硬件过滤器的编号。该 CAN 模块硬件上不支持过滤器编号,所以在接收时,
|
||||
<span class="+ topic/keyword pr-d/parmname keyword parmname">rxmsg.hdr</span>
|
||||
只能设置为-1。如下图<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="id__codeblock_pb4_dvh_fdc" data-ofbid="id__codeblock_pb4_dvh_fdc"><strong class="hl-keyword">static</strong> <strong class="hl-keyword">void</strong> can_rx_thread(<strong class="hl-keyword">void</strong> *parameter)
|
||||
{
|
||||
<strong class="hl-keyword">int</strong> i;
|
||||
rt_size_t size;
|
||||
<strong class="hl-keyword">struct</strong> rt_can_msg rxmsg = {<span class="hl-number">0</span>};
|
||||
|
||||
<strong class="hl-keyword">while</strong> (<span class="hl-number">1</span>)
|
||||
{
|
||||
rt_sem_take(&rx_sem, RT_WAITING_FOREVER);
|
||||
|
||||
rxmsg.hdr = -<span class="hl-number">1</span>;
|
||||
size = rt_device_read(can_rx_dev, <span class="hl-number">0</span>, &rxmsg, <strong class="hl-keyword">sizeof</strong>(rxmsg));
|
||||
...
|
||||
}</pre></div>
|
||||
</section></div></article></main></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav role="navigation" id="wh_topic_toc" aria-label="On this page" class="col-lg-2 d-none d-lg-block navbar d-print-none">
|
||||
<div id="wh_topic_toc_content">
|
||||
|
||||
<div class=" wh_topic_toc "><div class="wh_topic_label">在本页上</div><ul><li class="section-item"><div class="section-title"><a href="#id__section_jmv_gpf_fdc" data-tocid="id__section_jmv_gpf_fdc">接收线程打印导致丢帧问题</a></div></li><li class="section-item"><div class="section-title"><a href="#id__section_rwj_cvh_fdc" data-tocid="id__section_rwj_cvh_fdc"> RTT 硬件过滤器 hdr 设置</a></div></li></ul></div>
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<footer class="navbar navbar-default wh_footer">
|
||||
<div class=" footer-container mx-auto ">
|
||||
<title>footer def</title>
|
||||
<style><!--
|
||||
|
||||
.p1 {
|
||||
font-family: FangZhengShuSong, Times, serif;
|
||||
}
|
||||
.p2 {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.p3 {
|
||||
font-family: "Lucida Console", "Courier New", monospace;
|
||||
}
|
||||
|
||||
--></style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="webhelp.fragment.footer">
|
||||
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
|
||||
</div><div>
|
||||
<div class="generation_time">
|
||||
Update Time: 2025-01-21
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div id="go2top" class="d-print-none">
|
||||
<span class="oxy-icon oxy-icon-up"></span>
|
||||
</div>
|
||||
|
||||
<div id="modal_img_large" class="modal">
|
||||
<span class="close oxy-icon oxy-icon-remove"></span>
|
||||
<div id="modal_img_container"></div>
|
||||
<div id="caption"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
215
doc/topics/sdk/can/can_faq_2.html
Normal file
215
doc/topics/sdk/can/can_faq_2.html
Normal file
File diff suppressed because one or more lines are too long
215
doc/topics/sdk/can/can_test.html
Normal file
215
doc/topics/sdk/can/can_test.html
Normal file
@@ -0,0 +1,215 @@
|
||||
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content="测试环境 硬件 测试板:带有两个 CAN 接口的测试板 PC:用于和测试板交互 串口线:连接测试板的调试串口 软件 PC 端串口终端软件 can-utils 第三方软件包 iprouter2 第三方软件包 第三方软件包编译 SDK 中已默认编译 can-utils/iprouter2 软件包,可以直接使用。也可以通过以下两种方式编译测试: 使用预编译包 SDK 中提供了 ..."/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="concept"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2024-12-02"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="can_test_guide"/><meta name="DC.language" content="zh-CN"/><title>测试指南</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content=""/><meta name="wh-source-relpath" content="topics/sdk/can/can_test.dita"/><meta name="wh-out-relpath" content="topics/sdk/can/can_test.html"/>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
|
||||
|
||||
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
|
||||
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
|
||||
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
|
||||
|
||||
<body id="can_test_guide" class="wh_topic_page frmBody">
|
||||
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
|
||||
跳转到主要内容
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="navbar navbar-default wh_header">
|
||||
<div class="container-fluid">
|
||||
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
|
||||
<div class="wh_logo_and_publication_title_container">
|
||||
<div class="wh_logo_and_publication_title">
|
||||
|
||||
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
|
||||
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
|
||||
|
||||
|
||||
|
||||
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container-fluid" id="wh_topic_container">
|
||||
<div class="row">
|
||||
|
||||
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
|
||||
|
||||
<div data-tooltip-position="bottom" class=" wh_breadcrumb "></div>
|
||||
|
||||
|
||||
|
||||
<div class="wh_right_tools">
|
||||
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
|
||||
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="wh_content_area">
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-lg-10 col-md-10 col-sm-10 col-xs-12" id="wh_topic_body">
|
||||
|
||||
<button id="wh_close_topic_toc_button" class="close-toc-button d-none" aria-label="Toggle topic table of content" aria-controls="wh_topic_toc" aria-expanded="true">
|
||||
<span class="close-toc-icon-container">
|
||||
<span class="close-toc-icon"></span>
|
||||
</span>
|
||||
</button>
|
||||
|
||||
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic concept/concept topic concept" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/can/can_test.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">测试指南</h1><div class="date inPage">2 Dec 2024</div><div style="color: gray;">
|
||||
Read time: 2 minute(s)
|
||||
</div><div class="- topic/body concept/conbody body conbody"><div class="- topic/p p" data-ofbid="d97716e22__20250121171535">测试环境<ul class="- topic/ul ul" id="can_test_guide__ul_u13_fcn_d1c" data-ofbid="can_test_guide__ul_u13_fcn_d1c"><li class="- topic/li li" data-ofbid="d97716e25__20250121171535">硬件<ul class="- topic/ul ul" id="can_test_guide__ul_qz1_dcn_d1c" data-ofbid="can_test_guide__ul_qz1_dcn_d1c"><li class="- topic/li li" data-ofbid="d97716e28__20250121171535">
|
||||
<p class="- topic/p p" data-ofbid="d97716e30__20250121171535">测试板:带有两个 CAN 接口的测试板</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d97716e33__20250121171535">
|
||||
<p class="- topic/p p" data-ofbid="d97716e35__20250121171535">PC:用于和测试板交互</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d97716e38__20250121171535">
|
||||
<p class="- topic/p p" data-ofbid="d97716e40__20250121171535">串口线:连接测试板的调试串口</p>
|
||||
</li></ul></li><li class="- topic/li li" data-ofbid="d97716e43__20250121171535">软件<ul class="- topic/ul ul" id="can_test_guide__ul_rz1_dcn_d1c" data-ofbid="can_test_guide__ul_rz1_dcn_d1c"><li class="- topic/li li" data-ofbid="d97716e46__20250121171535">
|
||||
<p class="- topic/p p" data-ofbid="d97716e48__20250121171535">PC 端串口终端软件</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d97716e51__20250121171535">
|
||||
<p class="- topic/p p" data-ofbid="d97716e53__20250121171535">can-utils 第三方软件包</p>
|
||||
</li><li class="- topic/li li" data-ofbid="d97716e56__20250121171535">
|
||||
<p class="- topic/p p" data-ofbid="d97716e58__20250121171535">iprouter2 第三方软件包</p>
|
||||
</li></ul></li></ul></div><section class="- topic/section section" id="can_test_guide__section_sz1_dcn_d1c" data-ofbid="can_test_guide__section_sz1_dcn_d1c"><h2 class="- topic/title title sectiontitle">第三方软件包编译</h2>
|
||||
|
||||
<div class="- topic/p p" data-ofbid="d97716e66__20250121171535">SDK 中已默认编译 <span class="+ topic/ph sw-d/filepath ph filepath">can-utils/iprouter2</span> 软件包,可以直接使用。也可以通过以下两种方式编译测试:<ul class="- topic/ul ul" id="can_test_guide__ul_qgr_hcn_d1c" data-ofbid="can_test_guide__ul_qgr_hcn_d1c"><li class="- topic/li li" data-ofbid="d97716e72__20250121171535">使用预编译包<p class="- topic/p p" data-ofbid="d97716e74__20250121171535">SDK 中提供了 can-utils/iprouter2 的预编译包,可以直接将预编译包的目标文件编译到镜像。这种方式不需要编译
|
||||
can-utils/iprouter2
|
||||
源码,节省编译时间。</p><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="can_test_guide__codeblock_uz1_dcn_d1c" data-ofbid="can_test_guide__codeblock_uz1_dcn_d1c">Third-party packages--->
|
||||
[*] can-utils--->
|
||||
[*] use prebuilt binary instead of building from <strong class="+ topic/ph hi-d/b ph b">source</strong></pre><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="can_test_guide__codeblock_vz1_dcn_d1c" data-ofbid="can_test_guide__codeblock_vz1_dcn_d1c">Third-party packages--->
|
||||
[*] iproute2--->
|
||||
[*] use prebuilt binary instead of building from <strong class="+ topic/ph hi-d/b ph b">source</strong></pre></li><li class="- topic/li li" data-ofbid="d97716e84__20250121171535">编译源码包<p class="- topic/p p" data-ofbid="d97716e86__20250121171535">这种方式直接编译源码,而不使用 SDK
|
||||
中的预编译包。</p><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="can_test_guide__codeblock_xz1_dcn_d1c" data-ofbid="can_test_guide__codeblock_xz1_dcn_d1c">Third-party packages--->
|
||||
[*] can-utils--->
|
||||
[ ] use prebuilt binary instead of building from <strong class="+ topic/ph hi-d/b ph b">source</strong></pre><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="can_test_guide__codeblock_yz1_dcn_d1c" data-ofbid="can_test_guide__codeblock_yz1_dcn_d1c">Third-party packages--->
|
||||
[*] iproute2--->
|
||||
[ ] use prebuilt binary instead of building from <strong class="+ topic/ph hi-d/b ph b">source</strong></pre></li></ul></div>
|
||||
</section><section class="- topic/section section" id="can_test_guide__section_zz1_dcn_d1c" data-ofbid="can_test_guide__section_zz1_dcn_d1c"><h2 class="- topic/title title sectiontitle">CAN
|
||||
收发测试</h2>
|
||||
|
||||
<div class="- topic/p p" data-ofbid="d97716e102__20250121171535">
|
||||
<ol class="- topic/ol ol" id="can_test_guide__ol_evp_gqj_g1c" data-ofbid="can_test_guide__ol_evp_gqj_g1c"><li class="- topic/li li" data-ofbid="d97716e105__20250121171535">将测试板上的两个 CAN 接口对接。使用 ip 命令设置两个开发板的 CAN 接口,设置 CAN 接口的速度为 500Kb/s。<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="can_test_guide__codeblock_a1b_dcn_d1c" data-ofbid="can_test_guide__codeblock_a1b_dcn_d1c">ip link set can0 type can bitrate <span class="hl-number">500000</span> <em class="hl-comment">//设置 CAN0</em>
|
||||
ip link set can1 type can bitrate <span class="hl-number">500000</span> <em class="hl-comment">//设置 CAN1</em></pre></li><li class="- topic/li li" data-ofbid="d97716e109__20250121171535">打开 CAN 网卡<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="can_test_guide__codeblock_b1b_dcn_d1c" data-ofbid="can_test_guide__codeblock_b1b_dcn_d1c">ifconfig can0 up <em class="hl-comment">//打开 CAN0</em>
|
||||
ifconfig can1 up <em class="hl-comment">//打开 CAN1</em></pre></li><li class="- topic/li li" data-ofbid="d97716e113__20250121171535">设置 CAN1 接收数据<pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="can_test_guide__codeblock_c1b_dcn_d1c" data-ofbid="can_test_guide__codeblock_c1b_dcn_d1c">candump can0 &</pre><p class="- topic/p p" data-ofbid="d97716e117__20250121171535">CAN0 发送数据</p><pre class="+ topic/pre pr-d/codeblock pre codeblock language-c" id="can_test_guide__codeblock_d1b_dcn_d1c" data-ofbid="can_test_guide__codeblock_d1b_dcn_d1c">cansend can0 <span class="hl-number">5</span>A1#<span class="hl-number">11.22</span>.<span class="hl-number">33.44</span>.<span class="hl-number">55.66</span>.<span class="hl-number">77.88</span></pre><div class="- topic/p p" data-ofbid="d97716e121__20250121171535">上述 cansend 命令中,“5A1”是帧 ID,“#”后面的“11.22.33.44.55.66.77.88”是要发送的数据,十六进制。CAN2.0 一次最多发送 8 个字节的数据,8 字节数据之间用“.”隔开,can-utils 会对数据进行解析。<div class="- topic/note note note note_note" id="can_test_guide__note_e4y_4cn_d1c" data-ofbid="can_test_guide__note_e4y_4cn_d1c"><span class="note__title">注:</span> 当 CAN 总线上只有一个结点时,此时 CAN 结点发送数据,无法获取到 ACK,此时结点检测到错误并将会一直重发数据,该结点会进入被动错误状态,但不会进入总线关闭状态,直到有其它结点接入总线。这是符合 CAN 总线协议的。</div></div></li></ol>
|
||||
</div>
|
||||
</section><section class="- topic/section section" id="can_test_guide__section_e1b_dcn_d1c" data-ofbid="can_test_guide__section_e1b_dcn_d1c"><h2 class="- topic/title title sectiontitle">CAN 组网测试</h2>
|
||||
|
||||
<p class="- topic/p p" data-ofbid="d97716e132__20250121171535">多个 CAN 结点可进行组网测试,组网测试时应遵循以下原则:</p>
|
||||
<ol class="- topic/ol ol" id="can_test_guide__ol_f1b_dcn_d1c" data-ofbid="can_test_guide__ol_f1b_dcn_d1c"><li class="- topic/li li" data-ofbid="d97716e136__20250121171535">不同 CAN 结点发送不同的帧 ID,当多个结点同时发送时,总线根据帧 ID 进行仲裁,优先级最高的获得总线权,可以向总线发送数据。若结点发送的帧 ID 相同,则同时发送数据时将无法仲裁。</li><li class="- topic/li li" data-ofbid="d97716e138__20250121171535">组网测试时应确保总线两端匹配有 120 欧姆(典型值)的终端电阻。</li></ol>
|
||||
<div class="- topic/note note note note_note" id="can_test_guide__note_w3j_dcn_d1c" data-ofbid="can_test_guide__note_w3j_dcn_d1c"><span class="note__title">注:</span> 由于每个 demo 板都有匹配的终端电阻,多个 CAN 接入总线时,多个 demo 板的终端电阻并联接入网络,会严重影响 CAN 总线通信。应拆除掉多余的终端电阻,确保整个 CAN 网络的终端电阻为 120 欧姆。</div>
|
||||
</section></div></article></main></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<nav role="navigation" id="wh_topic_toc" aria-label="On this page" class="col-lg-2 d-none d-lg-block navbar d-print-none">
|
||||
<div id="wh_topic_toc_content">
|
||||
|
||||
<div class=" wh_topic_toc "><div class="wh_topic_label">在本页上</div><ul><li class="section-item"><div class="section-title"><a href="#can_test_guide__section_sz1_dcn_d1c" data-tocid="can_test_guide__section_sz1_dcn_d1c">第三方软件包编译</a></div></li><li class="section-item"><div class="section-title"><a href="#can_test_guide__section_zz1_dcn_d1c" data-tocid="can_test_guide__section_zz1_dcn_d1c">CAN
|
||||
收发测试</a></div></li><li class="section-item"><div class="section-title"><a href="#can_test_guide__section_e1b_dcn_d1c" data-tocid="can_test_guide__section_e1b_dcn_d1c">CAN 组网测试</a></div></li></ul></div>
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<footer class="navbar navbar-default wh_footer">
|
||||
<div class=" footer-container mx-auto ">
|
||||
<title>footer def</title>
|
||||
<style><!--
|
||||
|
||||
.p1 {
|
||||
font-family: FangZhengShuSong, Times, serif;
|
||||
}
|
||||
.p2 {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.p3 {
|
||||
font-family: "Lucida Console", "Courier New", monospace;
|
||||
}
|
||||
|
||||
--></style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="webhelp.fragment.footer">
|
||||
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
|
||||
</div><div>
|
||||
<div class="generation_time">
|
||||
Update Time: 2025-01-21
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div id="go2top" class="d-print-none">
|
||||
<span class="oxy-icon oxy-icon-up"></span>
|
||||
</div>
|
||||
|
||||
<div id="modal_img_large" class="modal">
|
||||
<span class="close oxy-icon oxy-icon-remove"></span>
|
||||
<div id="modal_img_container"></div>
|
||||
<div id="caption"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
237
doc/topics/sdk/can/can_test_lite.html
Normal file
237
doc/topics/sdk/can/can_test_lite.html
Normal file
File diff suppressed because one or more lines are too long
162
doc/topics/sdk/can/can_user_guide.html
Normal file
162
doc/topics/sdk/can/can_user_guide.html
Normal file
@@ -0,0 +1,162 @@
|
||||
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn" lang="zh-cn" data-whc_version="26.0">
|
||||
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><meta name="description" content="CAN 是一种广泛应用于汽车控制系统和一般工业环境中的区域网络总线。作为一款多主机、多广播的通信协议,CAN 以其高可靠性和卓越的错误检测能力而著称。 支持 CAN2.0A 和 CAN2.0B 协议 支持 11 位标准格式标识符和 29 位扩展格式标识符 可编程通信速率最高可达 1 Mbps 支持多种操作模式:正常模式、只听模式、自测模式、休眠模式、复位模式 支持接收过滤器,支持两种过滤模式 64 ..."/><meta name="DC.rights.owner" content="(C) 版权 2025"/><meta name="copyright" content="(C) 版权 2025"/><meta name="generator" content="DITA-OT"/><meta name="DC.type" content="concept"/><meta name="DC.contributor" content="yan.wang"/><meta name="DC.date.modified" content="2024-11-29"/><meta name="DC.format" content="HTML5"/><meta name="DC.identifier" content="can"/><meta name="DC.language" content="zh-CN"/><title>CAN 使用指南</title><!-- Build number 2023110923. --><meta name="wh-path2root" content="../../../"/><meta name="wh-toc-id" content=""/><meta name="wh-source-relpath" content="topics/sdk/can/can_user_guide.dita"/><meta name="wh-out-relpath" content="topics/sdk/can/can_user_guide.html"/>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/commons.css?buildId=2023110923"/>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/app/topic.css?buildId=2023110923"/>
|
||||
|
||||
<script src="../../../webhelp/app/options/properties.js?buildId=20250121171154"></script>
|
||||
<script src="../../../webhelp/app/localization/strings.js?buildId=2023110923"></script>
|
||||
<script src="../../../webhelp/app/search/index/keywords.js?buildId=20250121171154"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/commons.js?buildId=2023110923"></script>
|
||||
<script defer="defer" src="../../../webhelp/app/topic.js?buildId=2023110923"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-styles-web.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/notes.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-common.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-images.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/footnote.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/aic-web-watermark.css?buildId=2023110923"/><link rel="stylesheet" type="text/css" href="../../../webhelp/template/topic-body-list.css?buildId=2023110923"/></head>
|
||||
|
||||
<body id="can" class="wh_topic_page frmBody">
|
||||
<a href="#wh_topic_body" class="sr-only sr-only-focusable">
|
||||
跳转到主要内容
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
<header class="navbar navbar-default wh_header">
|
||||
<div class="container-fluid">
|
||||
<div class="wh_header_flex_container navbar-nav navbar-expand-md navbar-dark">
|
||||
<div class="wh_logo_and_publication_title_container">
|
||||
<div class="wh_logo_and_publication_title">
|
||||
|
||||
<a href="http://www.artinchip.com" class=" wh_logo d-none d-sm-block "><img src="../../../company-logo-white.png" alt="RTOS SDK 使用指南SDK 指南文件"/></a>
|
||||
<div class=" wh_publication_title "><a href="../../../index.html"><span class="booktitle"><span class="ph mainbooktitle">RTOS SDK 使用指南</span><span class="ph booktitlealt">SDK 指南文件</span></span></a></div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="wh_top_menu_and_indexterms_link collapse navbar-collapse" id="wh_top_menu_and_indexterms_link">
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_search_input navbar-form wh_topic_page_search search " role="form">
|
||||
|
||||
|
||||
|
||||
<form id="searchForm" method="get" role="search" action="../../../search.html"><div><input type="search" placeholder="搜索 " class="wh_search_textfield" id="textToSearch" name="searchQuery" aria-label="搜索查询" required="required"/><button type="submit" class="wh_search_button" aria-label="搜索"><span class="search_input_text">搜索</span></button></div></form>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container-fluid" id="wh_topic_container">
|
||||
<div class="row">
|
||||
|
||||
<nav class="wh_tools d-print-none navbar-expand-md" aria-label="Tools">
|
||||
|
||||
<div data-tooltip-position="bottom" class=" wh_breadcrumb "></div>
|
||||
|
||||
|
||||
|
||||
<div class="wh_right_tools">
|
||||
<button class="wh_hide_highlight" aria-label="切换搜索突出显示" title="切换搜索突出显示"></button>
|
||||
<button class="webhelp_expand_collapse_sections" data-next-state="collapsed" aria-label="折叠截面" title="折叠截面"></button>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class=" wh_print_link print d-none d-md-inline-block "><button onClick="window.print()" title="打印此页" aria-label="打印此页"></button></div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="wh_content_area">
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-12" id="wh_topic_body">
|
||||
|
||||
|
||||
|
||||
<div class=" wh_topic_content body "><main role="main"><article class="- topic/topic concept/concept topic concept" role="article" aria-labelledby="ariaid-title1"><span class="edit-link" style="font-size:12px; opacity:0.6; text-align:right; vertical-align:middle"><a target="_blank" href="http://172.16.35.88/tasks/jdssno1uvvbf2mltu9kb9v3if05d5gopuakboe8hlud18rma/edit/F:/aicdita/aicdita-cn/topics/sdk/can/can_user_guide.dita">Edit online</a></span><h1 class="- topic/title title topictitle1" id="ariaid-title1">CAN 使用指南</h1><div class="date inPage">29 Nov 2024</div><div style="color: gray;"></div><div class="- topic/body concept/conbody body conbody"><p class="- topic/p p" data-ofbid="d39250e22__20250121171516">CAN 是一种广泛应用于汽车控制系统和一般工业环境中的区域网络总线。作为一款多主机、多广播的通信协议,CAN
|
||||
以其高可靠性和卓越的错误检测能力而著称。</p><ul class="- topic/ul ul" id="can__ul_hz4_5bn_d1c" data-ofbid="can__ul_hz4_5bn_d1c"><li class="- topic/li li" data-ofbid="d39250e25__20250121171516">支持 CAN2.0A 和 CAN2.0B 协议</li><li class="- topic/li li" data-ofbid="d39250e27__20250121171516">支持 11 位标准格式标识符和 29 位扩展格式标识符</li><li class="- topic/li li" data-ofbid="d39250e29__20250121171516">可编程通信速率最高可达 1 Mbps</li><li class="- topic/li li" data-ofbid="d39250e31__20250121171516">支持多种操作模式:正常模式、只听模式、自测模式、休眠模式、复位模式</li><li class="- topic/li li" data-ofbid="d39250e33__20250121171516">支持接收过滤器,支持两种过滤模式</li><li class="- topic/li li" data-ofbid="d39250e35__20250121171516">64 bytes 缓冲器</li><li class="- topic/li li" data-ofbid="d39250e37__20250121171516">支持错误检测与处理:错误计数、错误报警阈值可配置、错误捕获、仲裁丢失捕获</li></ul><div class="table-container"><table class="- topic/table table frame-all" id="can__table_jf3_4bn_d1c" data-ofbid="can__table_jf3_4bn_d1c" data-cols="3"><caption class="- topic/title title tablecap" data-caption-side="top" data-is-repeated="true"><span class="table--title-label">表<span class="table--title-label-number"> 1</span><span class="table--title-label-punctuation">. </span></span><span class="table--title">术语定义</span></caption><colgroup><col style="width:22.32142857142857%"/><col style="width:29.910714285714285%"/><col style="width:47.76785714285714%"/></colgroup><thead class="- topic/thead thead"><tr class="- topic/row"><th class="- topic/entry entry colsep-1 rowsep-1" id="can__table_jf3_4bn_d1c__entry__1">术语</th><th class="- topic/entry entry colsep-1 rowsep-1" id="can__table_jf3_4bn_d1c__entry__2">定义</th><th class="- topic/entry entry colsep-0 rowsep-1" id="can__table_jf3_4bn_d1c__entry__3">注释说明</th></tr></thead><tbody class="- topic/tbody tbody"><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can__table_jf3_4bn_d1c__entry__1">CAN</td><td class="- topic/entry entry colsep-1 rowsep-1" headers="can__table_jf3_4bn_d1c__entry__2">Controller Area Network</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can__table_jf3_4bn_d1c__entry__3">控制器局域网络</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-1" headers="can__table_jf3_4bn_d1c__entry__1">RTR</td><td class="- topic/entry entry colsep-1 rowsep-1" headers="can__table_jf3_4bn_d1c__entry__2">Remote Transmission Request</td><td class="- topic/entry entry colsep-0 rowsep-1" headers="can__table_jf3_4bn_d1c__entry__3">远程请求帧</td></tr><tr class="- topic/row"><td class="- topic/entry entry colsep-1 rowsep-0" headers="can__table_jf3_4bn_d1c__entry__1">EFF</td><td class="- topic/entry entry colsep-1 rowsep-0" headers="can__table_jf3_4bn_d1c__entry__2">Extended Frame Format</td><td class="- topic/entry entry colsep-0 rowsep-0" headers="can__table_jf3_4bn_d1c__entry__3">扩展帧</td></tr></tbody></table></div></div></article></main></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<footer class="navbar navbar-default wh_footer">
|
||||
<div class=" footer-container mx-auto ">
|
||||
<title>footer def</title>
|
||||
<style><!--
|
||||
|
||||
.p1 {
|
||||
font-family: FangZhengShuSong, Times, serif;
|
||||
}
|
||||
.p2 {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
.p3 {
|
||||
font-family: "Lucida Console", "Courier New", monospace;
|
||||
}
|
||||
|
||||
--></style>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="webhelp.fragment.footer">
|
||||
<p class="p1">Copyright © 2019-2024 广东匠芯创科技有限公司. All rights reserved.</p>
|
||||
</div><div>
|
||||
<div class="generation_time">
|
||||
Update Time: 2025-01-21
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<div id="go2top" class="d-print-none">
|
||||
<span class="oxy-icon oxy-icon-up"></span>
|
||||
</div>
|
||||
|
||||
<div id="modal_img_large" class="modal">
|
||||
<span class="close oxy-icon oxy-icon-remove"></span>
|
||||
<div id="modal_img_container"></div>
|
||||
<div id="caption"></div>
|
||||
</div>
|
||||
|
||||
|
||||
<script src="${pd}/publishing/publishing-styles-AIC-template/js/custom.js" defer="defer"></script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
179
doc/topics/sdk/can/can_user_guide_2.html
Normal file
179
doc/topics/sdk/can/can_user_guide_2.html
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user