当前位置:首页>学习笔记>学习笔记—从零开始认识CAN总线:CAN协议与帧格式全解析

学习笔记—从零开始认识CAN总线:CAN协议与帧格式全解析

  • 2026-04-17 12:49:51
学习笔记—从零开始认识CAN总线:CAN协议与帧格式全解析
目 录
  1. CAN总线是什么——为什么汽车里到处都是它

  2. CAN的发展历史与两个重要标准版本

  3. 物理层:电平标准、总线拓扑与终端电阻

  4. 媒体访问机制:CSMA/CA与逐位仲裁

  5. 标准帧与扩展帧:两种帧格式详解

  6. 远程帧、错误帧、过载帧:四种帧的区别与用途

  7. 位填充机制:CAN可靠性的核心设计

  8. 错误检测五重保护与三种错误状态

  9. 位时序与波特率配置

  10. 车内CAN网络实例与工程设计原则

  11. 总结:理解CAN必须掌握的11个关键点

一、CAN总线是什么——为什么汽车里到处都是它

CAN,全称 Controller Area Network,中文译作"控制器局域网络"。它是一种专为汽车和工业控制设计的串行通信总线,由德国博世公司于1986年正式提出。

一辆传统汽车里有几十个电子控制单元(ECU):发动机管理、车身稳定系统、仪表盘、车窗升降、空调控制……每个都需要互相通信。

如果用传统一对一连线,光线束就能绑满整个车身。

CAN总线解决的就是这个问题:所有ECU挂在同一对双绞线上,谁想发数据就往总线里扔,总线上的所有节点都能收到。

CAN的核心价值:用最少的线实现最可靠的通信。这不是技术上的妥协,而是工程上的最优解。三十多年来,没有任何其他总线协议能在汽车领域撼动它的地位。

这就是CAN在汽车里到处存在的原因:布线少、可靠性高、抗干扰能力强、成本可控。自1986年博世提出以来,CAN已经成为汽车网络的事实标准,没有之一。

二、CAN的发展历史与两个重要标准版本

CAN协议目前有两个主要版本,统称CAN 2.0:

版本标识符长度标准应用场景
CAN 2.0A
11位(标准帧)
ISO 11898-1
乘用车、简单网络
CAN 2.0B
29位(扩展帧)
ISO 11898-1
商用车、复杂网络

两者在物理层完全兼容,可以共存于同一网络。CAN 2.0B节点能接收标准帧,CAN 2.0A节点也能忽略扩展帧的额外部分。

2.1 CAN FD:应对数据量爆发的新标准

随着汽车电子电气架构复杂化,传统CAN的最大8字节数据长度和1Mbps波特率成为瓶颈。CAN FD(CAN with Flexible Data-rate)应运而生:

  • 数据段波特率提升至5Mbps~8Mbps(控制段仍为传统波特率)

  • 数据段长度扩展至最大64字节(传统CAN只有8字节)

  • CRC校验扩展至17位或21位,错误检测能力更强

目前CAN FD在新一代新能源汽车的域控制器通信中快速普及。

三、物理层:电平标准、总线拓扑与终端电阻

3.1 差分信号传输

CAN使用差分信号(CAN_H和CAN_L两根线)表示数据。当两根线电压差约为2.0V时为显性电平(逻辑0);当差值约为0V时为隐性电平(逻辑1)。

总线状态CAN_HCAN_L差分电压
显性(Dominant)
3.5V
1.5V
≈2.0V
隐性(Recessive)
2.5V
2.5V
≈0V
关键特性:显性覆盖隐性。当总线上同时有节点发送显性和隐性电平时,总线呈现显性电平。这个特性是CAN总线仲裁机制的基础。

3.2 高速CAN与低速CAN

类型速率终端电阻典型应用
高速CAN(ISO 11898-2)
125kbps ~ 1Mbps
120Ω(两端各60Ω)
动力系统、底盘控制
低速CAN(ISO 11898-3)
≤125kbps
非标准,可变值
车身控制(门窗、空调)
终端电阻绝对不能忘。每条CAN总线两端必须各接120Ω终端电阻。它的作用是消除信号在总线末端的反射。如果终端电阻缺失或阻值错误,CAN波形会出现明显振铃,导致通信不稳定。实测总线两端阻值应在60Ω左右。

3.3 总线拓扑与长度约束

CAN总线通常采用总线型拓扑,所有节点通过短分支线接入主干线。速率越高,对总线长度和分支长度的要求越严格:

  • 1Mbps时,总线长度通常不超过40米

  • 125kbps时,总线长度可达500米

  • 节点数量一般不超过64个,受总线负载和收发器驱动能力限制

四、媒体访问机制:CSMA/CA与逐位仲裁

CAN总线没有主节点,所有节点地位平等。当多个节点同时想发数据时,谁说了算?

4.1 载波侦听(Carrier Sense)

每个节点在发送数据前,必须先监听总线是否空闲。只有当检测到连续11个隐性位(总线空闲标志),才能开始发送。这个机制有效减少了碰撞的发生。

4.2 非破坏性逐位仲裁(Non-destructive Bitwise Arbitration)

这是CAN最精妙的设计。当两个节点同时发数据时,通过逐位比较ID来确定优先级,优先级低的节点主动退出,不影响正在传输的数据。

节点A发送 ID = 10111000001  (二进制) 节点B发送 ID = 10110000001  (二进制)  逐位比较过程: Bit10~Bit6: 全部相同,两边继续发送 Bit5:     A=1(隐性)  B=0(显性) → 总线呈现显性           A读取总线=0,但自身发送=1 → A立即停止发送,切换为接收  结果:节点B赢得总线,继续发送完整帧;节点A等待总线空闲后重试
ID越小,优先级越高。二进制中较小的ID在高位先出现0(显性),所以0x100的消息优先级高于0x7FF。这是设计CAN网络时需要认真考虑的问题——高实时性要求的报文(如安全气囊触发信号)必须用短ID。

五、标准帧与扩展帧:两种帧格式详解

CAN数据帧是通信的主体。一条完整的数据帧结构如下(以标准帧为例):

5.1 标准CAN 2.0A 数据帧(11位标识符)

字段名英文全称长度说明
SOF
Start of Frame
1位
帧起始,显性电平(0)
ID[10:0]
Identifier
11位
报文标识符,值越小优先级越高
RTR
Remote Transmission Request
1位
数据帧=0(显性),远程帧=1(隐性)
IDE
Identifier Extension
1位
标准帧=0(显性)
r0
Reserved Bit
1位
保留位,显性
DLC[3:0]
Data Length Code
4位
数据长度,0~8字节
Data Field
Data Field
0~64位
实际载荷,0~8字节
CRC
Cyclic Redundancy Check
15位
帧校验序列
CRC Delimiter
CRC界定符
1位
隐性,CRC结束标志
ACK Slot
Acknowledgement
1位
接收节点置显性表示确认
ACK Delimiter
ACK界定符
1位
隐性
EOF
End of Frame
7位
连续隐性位,帧结束
IFS
Inter Frame Space
3位
帧间隔,两个帧之间最小间隔

一个完整标准帧不含帧间隔最大108位,含帧间隔最大128位

5.2 扩展CAN 2.0B 数据帧(29位标识符)

扩展帧与标准帧的核心区别在仲裁段。扩展帧在标准11位ID之后增加了18位扩展ID,同时用SRR位替代RTR位、用IDE位表示扩展帧:

字段长度说明
SOF
1位
同上
基础ID(11位)+ SRR + IDE
13位
SRR=1(隐性),IDE=1(隐性,表示扩展帧)
扩展ID(18位)
18位
ID[17:0]
RTR + r1 + r0 + DLC
6位
同标准帧结构
Data Field
0~64位
0~8字节
CRC(17位)+ 界定符
18位
扩展帧使用更长CRC
ACK + EOF + IFS
12位
基本同标准帧
扩展帧的实际应用:如果两个帧的基础11位ID相同,标准帧会优先赢得仲裁(RTR位比较优先于SRR位)。因此扩展帧通常用于基础ID不冲突的场景,用于扩展可用的ID空间,而非绕过优先级。

5.3 DLC数据长度编码规则

DLC[3:0]000000010010001101000101011001111000
数据长度(字节)
0
1
2
3
4
5
6
7
8

CAN 2.0规定数据段长度只能是0~8字节。DLC值9~15在CAN 2.0中保留(部分实现定义为8字节)。CAN FD则将DLC编码扩展至64字节。

六、远程帧、错误帧、过载帧:四种帧的区别与用途

6.1 数据帧(Data Frame)

携带实际数据的帧,是CAN通信中最常用的一种。结构见第五节。

6.2 远程帧(Remote Frame)

由一个节点主动请求另一个节点发送数据。结构与数据帧几乎相同,唯一区别是RTR位为隐性(1)

数据帧:  RTR = 0(显性) → "这是我的数据,请接收" 远程帧:  RTR = 1(隐性) → "请发送ID=xxx的数据给我"
远程帧在实践中很少使用。原因:远程帧没有数据字段,无法携带请求参数;多主从网络中容易被其他节点错误响应;大多数CAN网络选择周期发送模式替代远程请求。设计新系统时,优先考虑周期发送而非远程请求。

6.3 错误帧(Error Frame)

当节点检测到总线错误时,主动发送错误帧通知其他节点。错误帧由错误标志(6位显性)和错误界定符(8位隐性)组成。处于主动错误状态的节点发送主动错误标志(6位显性),处于被动错误状态的节点发送被动错误标志(6位隐性)。

6.4 过载帧(Overload Frame)

用于在两个数据帧之间插入额外延迟,由过载标志(6位显性)和过载界定符(8位隐性)组成。触发条件:接收节点尚未准备好接收下一帧,或在帧间隔期间检测到非预期的显性位。

七、位填充机制:CAN可靠性的核心设计

位填充(Bit Stuffing)是CAN区别于普通UART的最重要特性。

7.1 规则

SOF、仲裁段、控制段、数据段和CRC段中,如果出现连续5个相同电平的位,必须在其后立即插入一个相反电平的位。接收节点自动删除这5+1个位中的填充位。

7.2 为什么需要位填充?

核心目的:确保数据流中有足够的电平转换(edges),让接收节点的位同步能够持续进行。CAN没有独立时钟线,每个节点靠检测总线上的电平跳变来同步自己的位时序。如果一长串相同数据没有填充,接收节点的时钟漂移会导致位错位。

原始数据:   00000000  11110000  10011011 位填充后:   0000000 111110000 111110011 1011             ↑插入相反位  ↑同理        ↑
位填充也是错误检测手段。如果接收节点在应填充的位置检测到连续5个相同电平,就会触发"填充错误"并发送错误帧。这是CAN五重错误检测机制之一。

八、错误检测五重保护与三种错误状态

CAN协议内置了5种错误检测机制,任何一种被触发都会导致错误帧发送:

错误类型检测位置原理
位错误
发送节点
发送节点同时监听总线,发现自身发送的电平和总线实际电平不符
填充错误
接收节点
检测到违反位填充规则(连续5个相同电平)
CRC错误
接收节点
接收方计算的CRC与帧中收到的CRC不符
格式错误
所有节点
固定格式字段(CRC界定符、ACK、EOF)出现非法电平
ACK错误
发送节点
发送节点在ACK槽读到隐性位(没有任何接收节点响应)

8.1 三种错误状态

每个CAN节点内部维护两个计数器:TEC(发送错误计数器)REC(接收错误计数器)。根据计数器值,节点处于三种不同的错误状态:

错误状态TEC阈值REC阈值节点行为
主动错误状态
TEC < 128
REC < 128
正常通信,检测到错误发送主动错误标志(6位显性)
被动错误状态
TEC ≥ 128
REC ≥ 128
发送被动错误标志(6位隐性),不会破坏其他节点通信
总线关闭状态
TEC ≥ 256
关闭收发器,停止通信,需特殊流程恢复
总线关闭不是故障,而是保护机制。当TEC超过255时,节点进入总线关闭状态。这通常意味着网络中存在严重的硬件问题(短路、断路或持续干扰)。在汽车诊断中,监控各节点的TEC/REC状态是发现硬件故障的重要手段。

九、位时序与波特率配置

9.1 位的四段时间划分

一个CAN位被划分为4个时间段,这是理解CAN位时序的基础:

段名全称作用可重同步调整
SYNC_SEG
同步段
所有节点在此对齐,固定1个Tq
不可调整
PROP_SEG
传播段
补偿物理层信号传播延迟
不可调整
PHASE_SEG1
相位缓冲段1
补偿采样点前的时钟误差
可延长(重同步)
PHASE_SEG2
相位缓冲段2
补偿采样点后的时钟误差
可缩短(重同步)

采样点是CAN接收节点读取总线电平的时刻,通常设置在87.5%~90%的位置。

Bit Time = SYNC_SEG + PROP_SEG + PHASE_SEG1 + PHASE_SEG2          = 1 + PROP + PS1 + PS2  (单位: Tq, Time Quantum)  采样点 = (SYNC_SEG + PROP_SEG + PHASE_SEG1) / 总Tq数 × 100% 典型配置(采样点87.5%): (1 + 7 + 2) / 16 Tq

9.2 波特率计算

CAN波特率由振荡器频率和Tq数量共同决定:

波特率 = 振荡器频率 / (BRP × (1 + PROP + PS1 + PS2))  其中:   BRP (Baudrate Prescaler) = 预分频系数  实例: APB1时钟=36MHz,目标500kbps   设 BRP=9,Tq总数=8(1+1+2+4)   实际波特率 = 36,000,000 / (9 × 8) = 500,000 bps ✓
同步跳转宽度(SJW):当接收节点检测到位边沿与预期位置有偏差时,通过延长PS1或缩短PS2来调整,调整范围就是SJW。SJW通常设为1~4个Tq,值越大允许的晶振偏差越大,但会降低波特率精度。

十、车内CAN网络实例与工程设计原则

10.1 典型的车内CAN网络分层

一辆乘用车的CAN网络通常由多条独立的CAN总线组成,按速率和功能分层:

网络速率连接的ECU典型报文内容
动力CAN
500kbps
ECM、TCU、ABS/ESC
发动机转速、扭矩、车速
底盘CAN
500kbps
EPS、仪表盘
方向盘角度、制动压力
车身CAN
125kbps
BCM、空调、座椅模块
车灯、门锁、喇叭
诊断CAN
500kbps
诊断仪、所有ECU
故障码读写、配置

10.2 实际CAN报文解析示例

CAN ID: 0x123        → 11位标准ID = 0001 0010 0011 Data:  08 5A 10 00 3C 00 00 00  解析(假设DBC定义):   Byte0 = 0x08    → 数据长度 = 8字节   Byte1 = 0x5A   → 转速高字节   Byte2 = 0x10   → 转速低字节 → (0x105A - 0x1000) / 6.4 × 16 ≈ 1500 RPM   Byte3 = 0x00   → 水温信号(需结合偏移量和比例因子计算)
DBC文件是CAN通信的"字典"。DBC(Database CAN)文件描述了每个报文的ID、长度、发送周期,以及每个字节的物理含义、偏移量、比例因子。没有DBC,裸CAN数据就是十六进制数;有了DBC,才能变成"水温87°C"、"车速65km/h"这样的物理量。

10.3 工程设计基本原则

  • ID分配要合理:高实时性要求(安全相关)的报文用短ID;周期长的报文用长ID

  • 总线负载率控制在70%以下:留足余量应对突发通信和错误重发

  • 终端电阻必须匹配:两端各120Ω,实测总阻值约60Ω

  • 做好故障隔离:单节点硬件故障不应导致整条总线瘫痪

  • 做好测试验证:使用CANoe/CANalyzer等工具验证负载、错误处理和时序

十一、总结:理解CAN必须掌握的11个关键点

维度关键知识点
协议定位
汽车网络事实标准,Autosar/嵌入式开发必备基础
物理层
差分信号传输、高速/低速CAN、120Ω终端电阻
媒体访问
CSMA/CA + 非破坏性逐位仲裁,ID越小优先级越高
帧格式
标准帧(11位ID,8字节)和扩展帧(29位ID,8字节)
位填充
连续5个相同电平后插入1个相反电平,用于位同步
错误检测
5种错误检测机制(位错误/填充错误/CRC错误/格式错误/ACK错误)
错误状态
主动错误/被动错误/总线关闭,TEC≥256时关闭通信
位时序
SYNC+PROP+PS1+PS2四段,采样点87.5%~90%
波特率
= 时钟频率 / (BRP × Tq总数)
DBC文件
CAN报文的元数据描述,是解析裸数据的必备文件
设计原则
ID分配、负载率、终端电阻、故障隔离

CAN协议看似规则简单,但每一个设计细节背后都有深厚的工程考量:位填充解决了时钟同步问题,非破坏性仲裁实现了真正的多主访问,五重错误检测保证了极高的通信可靠性。理解这些"为什么",才能真正掌握CAN。

加入群聊可获得

面试

资料

100+企业面试案例

学习

路线

汽车开发学习路线

学习

指导

多名10年+大厂经验

工程师在线指导

学习

交流

众多开发者一起交流

助力你提升技能

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-17 21:53:40 HTTP/2.0 GET : https://67808.cn/a/481153.html
  2. 运行时间 : 0.146187s [ 吞吐率:6.84req/s ] 内存消耗:4,466.53kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=d131b30fe14f8d6a97641aedb9f138cd
  1. /yingpanguazai/ssd/ssd1/www/no.67808.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/no.67808.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/no.67808.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/no.67808.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/no.67808.cn/runtime/temp/6df755f970a38e704c5414acbc6e8bcd.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/no.67808.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000376s ] mysql:host=127.0.0.1;port=3306;dbname=no_67808;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000556s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000277s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000279s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000472s ]
  6. SELECT * FROM `set` [ RunTime:0.000193s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000477s ]
  8. SELECT * FROM `article` WHERE `id` = 481153 LIMIT 1 [ RunTime:0.000480s ]
  9. UPDATE `article` SET `lasttime` = 1776434020 WHERE `id` = 481153 [ RunTime:0.000803s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000213s ]
  11. SELECT * FROM `article` WHERE `id` < 481153 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000385s ]
  12. SELECT * FROM `article` WHERE `id` > 481153 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000489s ]
  13. SELECT * FROM `article` WHERE `id` < 481153 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000572s ]
  14. SELECT * FROM `article` WHERE `id` < 481153 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000689s ]
  15. SELECT * FROM `article` WHERE `id` < 481153 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000692s ]
0.147943s