佳能EF镜头SPI详细协议

原创 云深之无迹 2023-05-31 16:27

逆向Canon EF卡口镜头

佳能 EF 镜头 SPI控制

最近三天的文章都是关于佳能EF卡口的逆向内容,可以大多数人都看不懂,而且还是英文的。其实逆向镜头的需求就自动化控制,因为相机除了使用手去拍以外,很多时候被改装去做特种摄影测量。这个时候对焦就没有人眼辅助了,如果我们可以计算对焦的合适距离,然后使用我们逆向的方法控制镜头的焦距,那么就完成了这个自动控制。所以这个是存在的意义。

今天是逆向的最后一篇,也是最详细的一篇。逆向这个东西需要大量的实验和测试,也需要高性能的示波器和大容量的逻辑分析仪,且看且珍惜,这种逆向的东西技术含量可是高的,毕竟正的都玩不明白,都已经逆着去猜测开发者的心理了。

Pinout

  1. VBAT

  2. DET (common with P-GND on lens side)

  3. P-GND

  4. VDD

  5. DCL

  6. DLC

  7. LCLK

  8. D_GND

这个和上面的引脚不是对应的

Signal levels

VDD is nominally 5V. VBAT seems to also be ~5V (others report 6V).

VDD is always active (even with the camera off, if it has been powered on at least once) when a lens is connected (DET = low). When the camera turns on, VDD increases slightly (standby power vs. active regulator?)

The data lines are idle high and weakly pulled up by the camera. However, the drivers are not open drain (to get better rise times).

The signal levels are 5V. Driving 3.3V on DCL does not work - you need 5V, the lens seems to consider 3.3V as logic low. 3.3V on LCLK does seem to work.

Timing

The protocol is basically a variant of SPI with CPOL=1,CPHA=1. There is no framing or CS signal, which complicates parsing, and there is an additional variable length ACK clock pulse driven by the lens (kind of like I²C clock stretching).

Default clock period is 13µs (6.5µs per half cycle) = 77 kHz (80 kHz). This decreases to 2µs for newer lenses (1µs per half cycle) = 500 kHz Intended duty cycle seems to be 50% (fast mode seems to be 0.8µs low / 1.2µs high, but this is likely just an analog effect).

Power-on timing:

  • 1µs low glitch on DCL (?)

  • 42µs delay (?)

  • Single 6.5µs low pulse on DCL (does this serve a purpose?)

  • 103µs delay

  • First three byte cycles:

    • C 00 L ff [TX 89us ACK 14us BUSY 2165us] <- note long BUSY period

    • C 0a L aa [TX 89us ACK 14us BUSY 4us]

    • C 00 L aa [TX 89us ACK 14us BUSY 4us] <- VBAT turned on by camera during the lens ACK/BUSY pulse

Command byte timing:

  • Camera drives DCL at a random value for ~18µs (slow mode) or ~4µs (fast mode)

    • This seems to usually be whatever the last bit of the previous command was, but not always consistent.

  • Each bit is driven (by both camera and lens) on the falling edge of LCLK, and sampled on the rising edge.

  • Camera drives DCL high (or stops driving?) and stops driving LCLK 1µs after the last rising edge of LCLK (this is half a cycle in fast mode, but much shorter than half a cycle in slow mode).

  • Lens releases DLC ~4.3µs after the last rising edge of LCLK

  • Lens drives LCLK low ~14µs after the last rising edge of LCLK (ACK/BUSY)

  • ACK/BUSY pulse seems to last at least 4µs but may be much longer

  • Gap between bytes (rising edge of LCLK ACK/BUSY to first falling edge of LCLK) is at least 120µs in slow mode and at least 18µs in fast mode.

Note that slow/fast mode only changes the camera timings. The lens always behaves the same way.

Exceptional states

Holding LCLK low for >700µs seems to reset the lens. The lens will then itself hold LCLK low until ready (~300us, sometimes longer).

Pulsing LCLK low (e.g. shifting in one bit) then waiting causes the lens to time out. After 740µs, it will reset itself and hold LCLK low for ~300-400µs. This may effectively be the same situation as the above (holding LCLK low).

Command 08 powers down the lens. After this, the next command sent by the camera is ignored, and the lens will hold LCLK low for ~2ms during that command as it powers up.

General command structure

Lens commands opcodes are one byte, and may have a number of arguments and reply bytes. The lens replies to a command starting on the next byte cycle. Commands may be pipelined: the last response byte from the lens may be transferred at the same time as the next command from the camera.

When the lens receives an unknown command, it will echo it back to the camera on the next cycle.

There is no explicit framing, therefore keeping sync with the protocol requires knowledge of all command lengths. There are no implicit timeouts. You can send a command, wait one second, then send the argument, and it will be interpreted as such, not a new command. Commands have both fixed argument and response byte counts (i.e. a fixed overall length); the camera cannot interrupt an information retrieval command by sending another command. The lens ignores dummy data from the camera while it is replying to a command. Canon cameras send 00 as dummy padding bytes during such read cycles.

Command ranges

The command codes follow certain patterns:

  • 00-0f: commands 0-f with zero arguments

  • 10-1f: commands 0-f with one argument

  • 20-2f: commands 0-f with one dummy argument (unused/redundant)

  • 30-3f: information commands

  • 40-4f: commands 0-f with two arguments

  • 50-5f: commands 0-f with one dummy argument (unused/redundant)

  • 60-6f: more info commands

  • 70-7f: unused/unimplemented

  • 80-ff: largely more info commands

These range 0x, 1x, 2x, 4x, 5x encode the same operations. Each operation is intended to be used only with one argument count (of 0x, 1x, 4x); if used with the wrong count, it will instead re-use the argument from the previous valid operation. The basic commands are:

00 No-op
01
12 XX Change aperture (+/- int8 0xXX)
13 XX Same as 12
44 HH LL Change focus (+/- int16 0xHHLL)
05 Focus to max (infinity)
06 Focus to min
07
08 Power down
09
0a Ready/sync (replies aa)
0b
0c
0d
0e
0f

So, for example, the focus is intended to be set with 44 HH LL, but 04, 14 XX, 24 XX, 54 XX will all just repeat whatever the previous valid 44 HH LL command was.

Command list

This table exhaustively lists all commands and what they return on this lens. The lengths can be used to build a table for a protocol analyzer (or a modchip). The busy time may help determine which commands are unimplemented/no-ops and which actually do something.

Testing note: "--" values are presumed don't care, but actual testing was done sending 0a bytes after every command (to determine when it gets interpreted as command 0a and returns aa).

Consider busy timing values to have +/-1µs jitter.

CMD RET TIME Brief description
00 00 4 No-op (padding to get last response)
01 01 4
02 02 9+ (Change aperture, repeats cmd 12/13)
03 03 10+ (Change aperture, repeats cmd 12/13)
04 04 8 (Change focus, repeats cmd 44)
05 05 7 Focus to max (infinity)
06 06 7 Focus to min
07 07 10
08 (ff) 298 Power down
09 09 11
0a aa 10 Sync
0b 0b 16
0c XX 4 Repeats last response byte
0d 0d 8
0e 0e 11
0f 0f 12

10 -- 10 10 7, 3 (No-op)
11 -- 11 11 8, 4
12 YY 12 12 9, 14+ Change aperture (+/- int8)
13 YY 13 13 9, 14+ Change aperture (+/- int8)
14 -- 14 14 7, 4 (Change focus, repeats cmd 44)
15 -- 15 15 7, 4 (Focus to max)
16 -- 16 16 7, 4 (Focus to min)
17 -- 17 17 7, 4
18 -- 18 (ff) 8, 297 (Power down)
19 -- 15 15 7, 5
1a -- 1a aa 7, 4 (Sync)
1b -- 1b 1b 7, 9
1c -- 1c 1c 7, 3 (Repeats last response byte)
1d -- 1d 1d 7, 4
1e -- 1e 1e 7, 3
1f -- 1f 1f 7, 4

20 -- 20 20 4, 4 (No-op)
21 -- 21 21 4, 3
22 -- 22 22 4, 8+ (Change aperture, repeats cmd 12/13)
23 -- 23 23 4, 7+ (Change aperture, repeats cmd 12/13)
24 -- 24 24 4, 4 (Change focus, repeats cmd 44)
25 -- 25 25 4, 4 (Focus to max)
26 -- 26 26 4, 4 (Focus to min)
27 -- 27 27 4, 4
28 -- 28 (ff) 4, 296 (Power down)
29 -- 29 29 3, 4
2a -- 2a aa 4, 3 (Sync)
2b -- 2b 2b 4, 8
2c -- 2c 2c 4, 4 (Repeats last response byte)
2d -- 2d 2d 4, 4
2e -- 2e 2e 4, 3
2f -- 2f 2f 4, 4

30 ?? ?? ?? 30 30 30 30 4, 4, 4, 6 ?
31 ?? ?? 31 31 31 3, 3, 35 ?
32 ?? 08 03 7, 4 ?
33 ?? ?? ?? 07 0a 0a 4a 6, 6, 3, 3 ?
34 ?? ?? 34 34 34 5, 4, 12 ?
35 00 5 ?
36..3f 36..3f 3-5 (unused)

40 -- -- 40 40 40 8, 4, 4 (No-op)
41 -- -- 41 41 41 7, 4, 4
42 -- -- 42 42 42 7, 3, 9+ (Change aperture, repeats cmd 12/13)
43 -- -- 43 43 43 8, 3, 9+ (Change aperture, repeats cmd 12/13)
44 HH LL 44 44 44 7, 4, 4 Change focus (+/- int16 big-endian 0xHHLL)
45 -- -- 45 45 45 7, 4, 5 (Focus to max)
46 -- -- 46 46 46 8, 4, 4 (Focus to min)
47 -- -- 47 47 47 8, 3, 6
48 -- -- 48 48 (ff) 7, 4, 316 (Power down)
49 -- -- 49 49 49 8, 3, 6
4a -- -- 4a 4a aa 7, 3, 4 (Sync)
4b -- -- 4b 4b 4b 7, 4, 10
4c -- -- 4c 4c 4c 7, 4, 7 (Repeats last response byte)
4d -- -- 4d 4d 4d 8, 4, 5
4e -- -- 4e 4e 4e 7, 4, 5
4f -- -- 4f 4f 4f 7, 3, 5

50 -- 50 50 4, 4 (No-op)
51 -- 51 51 4, 4
52 -- 52 00 4, 9 (Change aperture, repeats cmd 12/13)
53 -- 53 00 4, 9 (Change aperture, repeats cmd 12/13)
54 -- 54 54 4, 3 (Change focus, repeats cmd 44)
55 -- 55 55 4, 4 (Focus to max)
56 -- 56 56 4, 4 (Focus to min)
57 -- 57 57 4, 4
58 -- 58 (ff) 4, 298 (Power down)
59 -- 59 59 4, 5
5a -- 5a aa 4, 4 (Sync)
5b -- 5b 5b 4, 9
5c -- 5c 5c 4, 4 (Repeats last response byte)
5d -- 5d 5d 4, 3
5e -- 5e 5e 4, 5
5f -- 5f 5f 4, 5

60..65 60..65 4 (unused)
66 06 12 ?
67 67 4 (unused?)
68 30 4 ?
69 -- -- -- -- --
23 09 00 00 00 00
9, 69, 4, 4, 4, 6 ?
6a -- -- -- -- --
23 09 00 00 00 00
11, 65, 4, 3, 4, 6 ?
6b -- f1 9f 11, 4 ?
6c -- f2 b8 12, 4 ?
6d -- f1 9f 12, 4 alias of 6b?
6e -- f2 b8 12, 3 alias of 6c?
6f -- 54 2a 6, 4

70..7f 70..7f 4 (unused)

80 -- -- -- -- -- -- -- Get lens basic info
91 34 00 12 00 37 75 92
12, 9, 4, 4, 4, 4, 3, 4
81 -- -- --
3f 00 00 90
7, 4, 3, 4
82 45 5 Get lens name (first char)
83 46 6 Get lens name (next char)
84 84 6
85 -- -- -- --
ff ff ff ff ff
9, 3, 4, 3, 4
86 -- -- -- 03 00 00 00 7, 3, 3, 4
87..8f 87..8f 5-6 (unused)

90 -- 00 80 16, 12 Get basic status bits
91 -- -- 00 80 44 18, 4, 4 Get extended status bits
92 92 8
93 XX YY ZZ 93 93 93 93 8, 3, 4, 4 Set IS parameters
94 -- f5 00 15, 16
95 -- -- -- 04 37 37 00 6, 6, 3, 3
96..9f 96..9f 3-5 (unused)

a0 -- 00 12 7, 3
a1 1f 4
a2 1f 4
a3..af a3..af 4-5 (unused)

b0 -- -- 25 25 50 6, 4, 4
b1 -- 91 93 8, 4
b2 -- -- 42 02 5f 6, 4, 3
b3 -- 99 82 7, 3
b4..bf b4..bf 4-5 (unused)

c0 -- 00 00 13, 3
c1 -- 00 33 6, 4
c2 -- -- -- ff ff ff 7, 4, 4, 4
c3 40 8
c4 -- 00 20 8, 4
c5 ?? c5 00 4, 4
c6 c6 4
c7 -- fe ff 4, 4
c8 c8 4
c9 -- -- -- -- --
23 03 ff 00 00 00
10, 4, 4, 3, 3, 4
ca -- -- -- -- --
23 03 ff 00 00 00
9, 3, 4, 4, 3, 4
cb..ce cb..ce 4-5 (unused)
cf -- 00 7c 9, 4

d0 ff 24 Get param array d0 (first byte)
d1 ff 24 Get param array d1 (first byte)
d2 ff 26 Get param array d2 (first byte)
d3 ff 26 Get param array d3 (first byte)
d4 fa 27 Get param array d4 (first byte)
d5..d7 d5..d7 4 (unused)
d8 ff 24 Get param array d8 (first byte)
d9 ff 24 Get param array d9 (first byte)
da ff 25 Get param array da (first byte)
db ff 24 Get param array db (first byte)
dc fa 27 Get param array dc (first byte)
dd..de dd..de 4-6 (unused)
df af 7 Get next byte from param array

e0 -- 3b c9 9, 4
e1..e3 e1..e3 4 (unused)
e4 -- 1d 8e 6, 4
e5..e7 e5..e7 4 (unused)
e8 -- -- -- -- --
29 96 9e b0 00 00
10, 3, 3, 4, 4, 4
e9 e9 4 (unused)
ea -- -- -- -- --
29 4e 9d f6 00 00
10, 4, 4, 4, 3, 4
eb..ef eb..ef 4 (unused)

f0 05 12
f1..f7 f1..f7 4-5 (unused)
f8 b5 10
f9 00 11
fa b5 11
fb fb 4 (unused)
fc b7 12
fd f5 11
fe b7 12
ff ff 7


接下来可能会写M43的接口。

https://pickandplace.wordpress.com/2011/10/05/canon-ef-s-protocol-and-electronic-follow-focus/

评论 (0)
  • Vue+Django REST framework 打造生鲜电商项目视频课程

    给大家分享一套课程——Vue+Django REST framework 打造生鲜电商项目,附源码下载。

    Django 项目源自一个在线新闻 Web 站点,于 2005 年以开源的形式被释放出来。Django 框架的核心组件有:
    用于创建模型的对象关系映射;
    为最终用户设计较好的管理界面;
    URL 设计;
    设计者友好的模板语言;
    缓存系统。

    Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以“插件”形式服务于整个框架,Django有许多功能强大的第三方插件,甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(Do Not Repeat Yourself)原则。

    微商等社交电商社交电商将成为未来零售的重要通道,社交电商所带来的巨大流量也将转变为电商的销量,人们在获取信息的同时还可以更好的享受购物带来的乐趣,社交电商将成为未来电商发展的新方向。

    网站开发 ,网页设计 ,网络营,微商,开淘宝或者京东网店,还有就是做代购,这些都是电子商务方面的创业项目。随着国内互联网使用人数的增加,利用互联网进行网络购物并以银行卡付款的消费方式已渐趋流行,市场份额也在迅速增长,各种类型的电商网站也将层出不穷。注:找项目,找渠道,找异业合作建议上BD邦平台看看,有很多甲方项目能给予启发,还有行业社群
  • 人人都能学的数据分析(16周完整版+源码+PDF课件)下载
    人人都能学的数据分析(16周完整版+源码+PDF课件),作为数据分析师, 清晰了解数据分析的步骤是非常重要的,有助于清楚把控整个数据分析的流程
    那么在日常工作中,这些上下游对接的部门同事自然是分析师的面向对象,除了这些工作的合作伙伴,还有大部分精力要拿来面对自己的领导和业务方的领导,他们可能会给你提一些有挑战性的工作,即使他们属于放手型的,那你也需要主动找机会与他们沟通,毕竟向上管理是每一个职场人必备的技能。
    作为想要学习数据分析的人员,了解整个数据分析的流程, 这样在面对一个数据分析问题的时候,知道如何去开展
    那么数据分析流程包含哪些环节呢?
    我将一次完整的数据分析流程主要分为六个环节,包括明确分析目的、数据获取、数据处理、数据分析、数据可视化、总结与建议。

    1、PEST分析法
    PEST,也就是政治(Politics)、经济(Economy)、社会(Society)、技术(Technology),能从各个方面把握宏观环境的现状及变化趋势,主要用户行业分析。

    2、5W2H分析法
    5W2H,即为什么(Why)、什么事(What)、谁(Who)、什么时候(When)、什么地方(Where)、如何做(How)、什么价格(How much),主要用于用户行为分析、业务问题专题分析、营销活动等。

    3、SWOT分析法
    SWOT分析法也叫态势分析法,S (strengths)是优势、W (weaknesses)是劣势,O (opportunities)是机会、T (threats)是威胁或风险。

    分析师需要面对的人
    分析师的岗位类似于文章中的过渡句,上面承接开发、埋点、数据仓库的同事,下面对接运营、产品,商业等业务人员,如果你想最快的了解整个公司的运营模式和现状,分析师的职位是不二之选。

    那么在日常工作中,这些上下游对接的部门同事自然是分析师的面向对象,除了这些工作的合作伙伴,还有大部分精力要拿来面对自己的领导和业务方的领导,他们可能会给你提一些有挑战性的工作,即使他们属于放手型的,那你也需要主动找机会与他们沟通,毕竟向上管理是每一个职场人必备的技能。
  • [完结22章]Python多领域场景实战课 快速成为多面手
    Python多领域场景实战课 快速成为多面手2023,完结22章,理论+实战相结合,融合5大领域(如办公自动化、数据分析、爬虫、人工智能、Web开发)

    Python多领域场景实战课 快速成为多面手,Python是一种动态的、高级的、免费的开源解释型编程语言,它支持面向对象以及面向过程的程序设计,应用非常广泛。那么Python能做什么?下面来看下Python的主要用途介绍。

    1、Web开发
    Python可以利用简单的代码来构建一个漂亮而实用的网站,它有庞大的库和模块,如HTTP、XML、JSON、IMAP、POP、FTP等。这些有助于数据库存储、内容管理以及与互联网协议的接口。
    Python还集成了一些框架,比如Django、Flask、Pyramid和Bottle等。此外,它还附带了像Beautiful Soup、Twisted Python、Feedparser等包。所以使用Python来进行Web开发,会非常便捷。例如,您可以在美国服务器上安装Python,并用它来搭建网站。

    2、人工智能和机器学习
    很多AI和ML模型都是用Python搭建的,数据分析师也使用它来分析复杂的数据。这主要因为Python具有诸多可用的工具和库,比如:
    用于数据处理和分析的Pandas工具集
    用于数学计算的NumPy和SciPy库
    可视化库Seaborn和Matplotlib
    机器学习算法库,如Scikit learn、Tensor Flow和Keras等

    3、游戏开发
    Python编程语言的一个有趣的应用是构建游戏,如抓蛋游戏、贪吃蛇游戏等。Python附带了Pygame和Pykyra这样的包来构建游戏,它促进了具有各自库的3D游戏的开发,也用于许多游戏引擎中的脚本编写。

    4、桌面GUI开发
    Python的简单性和跨平台性使它成为GUI应用程序的良好选择。虽然Tkinter是GUI开发的标准库,但还有其他支持库

    5、Python爬虫
    爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序。
    从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HTML代码/JSON数据/二进制数据(图片、视频) 爬到本地,进而提取自己需要的数据,存放起来使用。

    6、Python数据分析
    在使用Python进行数据分析之前,我们需要遵循以下步骤:
    获取数据:数据可以来自各种来源,例如CSV文件、数据库、Web API或其他数据集。
    清洗数据:清洗数据是将数据转换为可用于分析的格式的过程。这可能包括删除重复项、填充缺失值、转换数据类型等。
    探索性数据分析(EDA):EDA是探索数据以获取有关数据集的见解的过程。这包括绘制直方图、箱线图、散点图等。
    数据建模:在进行数据建模之前,我们需要进一步清洗数据,并将其转换为机器学习算法可以理解的格式。然后,我们可以应用机器学习算法进行预测、分类等操作。
    评估模型:我们需要使用各种指标(例如准确率、召回率等)评估模型的性能。
  • 16、谷景电子常规0608工字电感性能升级应用案例分享
    16、谷景电子常规0608工字电感性能升级应用案例分享
  • [11章]SpringBoot3.0 + RocketMq 构建企业级数据中台教程
    SpringBoot3.0 + RocketMq 构建企业级数据中台,所谓数据中台,即实现数据的分层与水平解耦,沉淀公共的数据能力,笔者认为可分为三层,数据模型、数据服务与数据开发,通过数据建模实现跨域数据整合和知识沉淀,通过数据服务实现对于数据的封装和开放,快速、灵活满足上层应用的要求,通过数据开发工具满足个性化数据和应用的需要。

    过去三十年,企业数据管理都以传统的IT架构为基础。每当技术部门为业务部门解决问题时,需要从业务需求的探查、技术壁垒的打通等从上到下各个方面来建设新系统。每个系统的建成都自成一体,各自满足业务部门的需求。这种情况不仅耗费各部门大量的精力也使得各个系统难以打通管理,无法形成更强大的数据能力。

    SpringBoot3.0 + RocketMq 构建企业级数据中台,数据中台是能力共享平台。如今,很多产品应用研发初始都在强调功能性,各个功能存在或多或少的重复性。然而企业对这些产品功能的定义并不相同。当客户产生某些需求时,由于定义的不同,产品功能和功能间的数据很难打通,也无法实现能力共享。
    在数据中台基础上的应用开发并不强调功能性,更注重能力的共享。这种能力就像水电煤一样可以直接向外输出使用,从而满足业务部门和用户的不同需求。

    数据中台如何建设?
    SpringBoot3.0 + RocketMq 构建企业级数据中台,数据中台的建设包括三个阶段,分别是基础架构、技术体系和应用系统。
    基础架构主要由数据标准、数据质量、元数据等组成。在建设过程中,需要根据企业的实际情况进行合理布局。技术体系是数据中台的技术支撑,主要包括业务应用系统、 ETL工具等。通过建立技术体系,可以提升企业在大数据处理上的效率和质量,同时也可以降低企业在大数据平台搭建过程中的成本。应用系统主要包含数据资产管理系统、数据运营管理系统、智能分析系统等。通过建立应用系统,可以有效地提高数据分析的效率。通过建立应用系统,企业可以对各种数据进行统计和分析,进而对业务起到指导作用。
    以上三个阶段是基础架构阶段,是建设数据中台的重要组成部分。通过基础架构阶段,企业可以更好地了解自身的业务情况以及现有的数据情况,在此基础上进行技术体系建设和应用系统建设。
  • 基于51单片机的智能台灯洞洞板设计技术手册
    基于51单片机的智能台灯洞洞板设计技术手册
  • 基于51单片机的超声波测距仪设计 数码管显示技术手册
    基于51单片机的超声波测距仪设计 数码管显示技术手册
  • 17、谷景0510色环电感封装尺寸及电流升级应用案例分享
    17、谷景0510色环电感封装尺寸及电流升级应用案例分享
  • BL0910物联网计量,BL0937B单相,内置振荡器,有功电能,有效值,电能计量,BL0939 内置时钟免校准计量芯片。 ...
    BL0937B是一颗宽量程单相多功能电能计量芯片,适用于单相插座表、 单相插排、 智能家电控制电路等应用,具有较高的性价比。BL0939免校准、用电安全监测、双路、可多路级联.   十相交/直流电能计量芯片BL0910
  • 基于CH340N的USB转TTL模块-MINI-A技术手册
    基于CH340N的USB转TTL模块-MINI-A技术手册
  • 锂离子电池制造工艺原理与应用
    锂离子电池制造工艺原理与应用
  • 14、谷景科普贴片电感坏了可用磁环代替吗
    14、谷景科普贴片电感坏了可用磁环代替吗
  • 商户缺斤少两、虚报重量的欺诈行为频发,公平秤时不时就会损坏,消费者可以如何保护自己的合法权益呢?毕竟对于一些贵重商品,差一点可是不少钱的。 消费者可以通过电子秤了解所购买商品的真实重量和,更好地保护自己的合法权益。手提家用电子秤是一种方便实用的家居计量工具,它的主要用途是用于测量物体的重量,在日常生活的各个方面,手提家用电子秤都发挥着重要的作用。主要特点就是体积小巧,重量轻,便于携带,可以随时随地使用。 这次带来的商品如下: 从外观上来看,主要的操作模式就是两个按键,然后通过断码
    无言的朝圣 2023-09-26 12:07 115浏览
  • 一.项目背景: 当前大型化化工厂制造企业,人员管理除考勤管理外主要依靠监管人员进行现场管理的方式,这种方式不但需要监管人员亲临现场,而且并不能从根本上解决人员管理问题,比如车间分布较分散,监管人员需要不断巡视各车间;人员较多时,并不能对每个人员起到监管作用。随着企业规模扩大,人员的增多,随之而来的是如何提高监管人员的工作效率,管理好每个人员,对企业管理来说至关重要。 针对化工厂人员管理的难题,苏州新导结合了无线无线技术,开发出化化工厂人员定位系统,可以从根本上解决化工厂人员管理的问题
    新导智能 2023-09-26 10:25 108浏览
  • 一.项目背景: 人口老龄化加剧,老人日益增多,家庭养老功能的逐步弱化,养老院机构作为支撑。而养老院要维持健康、稳定的发展,离不开管理的信息化、服务的智能化、运营成本的合理化。新导智能为实现养老院的智慧化管理推出了一套基于蓝牙定位技术的数字化医院整体解决方案,是业内首创通过一套蓝牙网络实现室内精准定位、无线活动监测、生命体征监测、健康管理、护工管理、医疗设备数据采集等应用。数字医院整体解决方案通过应用移动计算、智能识别、数据融合、云计算、物联网等先进技术对医院临床业务和医院管理两个核心的应用进行
    新导智能 2023-09-26 10:57 107浏览
  • 一.项目背景: 目前医院固定资产管理通常采用人工管理方法和手段: 1. 医院仪器保养维修记录皆为人工手写常常因为工作忙而忘记填写或抄写错误。 2. 纸质的记录无法提供查询功能。 3. 医院内部科室搬迁时容易发生仪器遗失或闲置。 4. 无法详细记录仪器的使用周期。 这种管理手段效率低下,差错率高,且容易出现紧急情况下无法迅速找到特殊医疗设备的问题。改革旧的管理模式,提高固定资产管理水平,成了当前医院面临的刻不容缓的问题。 在当前这种状况下,改变原有的医疗资产管理方法刻不容缓,苏州新导
    新导智能 2023-09-26 10:28 125浏览
  • 9月25日,华为一年一度的秋季全场景新品发布会举行,这可能是华为历史上最为特殊、关注度最高的一场产品发布会,众多官媒加持,被许多媒体认为是华为强势回归的“仪式”。最近一个月来,是独属于华为的高光时刻,从8月底华为Mate 60 pro手机“未发先售”,麒麟9000s芯片实现华为手机媲美5G上网速度,“遥遥领先”全网热议,任正非和孟晚舟先后发表“第四次工业革命”、“全面智能化时代”等讲话,华为正在全面回归。当然,在这场发布会上行,大家更期待的是,听到更多华为手机的声音。然而,并没有,华为 Mate
    传感器专家网 2023-09-26 11:34 123浏览
  • 随着现代汽车工业的发展,汽车内部电子电气架构复杂度增加,需要使用更高带宽的通信解决方案,这也成了车载以太网技术推动的动力。 什么是车载以太网?与传统以太网有什么区别? 车载以太网是一种用于连接车内电气设备的物理网络,它可以满足车载环境的特殊需求,如EMI/RF,同时也满足车载设备对于高带宽低延迟以及音视频同步的需求,满足车载网络对网络管理的需求。 而传统以太网不能够满足OEM对于EMI/RF的需求,抗干扰能力差,无法保证毫秒级的传输延迟和带宽分配。 车载以太网总线相对于其
    北汇信息 2023-09-26 11:28 129浏览
  • 红外线传感器是用红外线的物理性质来进行测量的传感器。红外线又称红外光,它具有反射、折射、散射、干涉、吸收等性质。是一种不可见光,其光谱位于可见光中红色以外,所以称红外线。工程上把红外线占据在电磁波谱中的位置分为:近红外、中红外、远红外、极远红外四个波段。任何物质,只要它本身具有一定的湿度,都能辐射红外线。 红外线传感器测量时不与被测物体直接接触,因而不存在摩擦,并且有灵敏度高,响应快等优点。可测量的物理量红外线传感器常用于无接触温度测量,气体成分分析和无损探伤,在医学、军事、空间技术和
    斯利通陶瓷电路板 2023-09-26 16:28 88浏览
  • 读报见文:我们的未来注定只有零和博弈吗? FT中文网更新于2023年9月22日 19:29 约翰•伯恩-默多克 经济增长放缓的背景可能正在影响人们对未来的态度,无论政治倾向。   第一想到的就是这些年个人好奇的一个说法:有得就有失,有失就有得,得而不喜失而不忧。 零和不就是没有输赢?得失均衡? 到底什么是零和博弈呢?百度看看。 零和博弈(社会学概念)_百度百科说: 零和博弈(zero-sum game),又称零和游戏,与非零和博弈相对,是博弈论的一个概念,属非合作博弈。
    自做自受 2023-09-26 13:13 121浏览
  •   智能仓库是近几年兴起的一个概念,仓库的货物繁杂,进出频繁,是很考验管理水平的随着新技术的不断发展 特别是近几年RFID技术的发展, 使仓库的管理更加自动化 人性化,苏州新导RFID仓库管理主要利用RFID技术,在每个物资上配上标签记录此物资的属性,再结合读写器做进出,分拣,盘点操作. RFID仓库管理系统中的电子标签RFID有的称射频标签、射频识别。它是一种非接触式的自动识别技术,通过射频信号识别目标对象并获取相关数据,识别工作无须人工干预,作为条形码的无线版本,RFI
    新导智能 2023-09-26 11:25 131浏览
  • 1. SDK简介一个通用 Linux SDK 工程目录包含有buildroot、app、kernel、device、docs、external 等目录。其中一些特性芯片如RK3308/RV1108/RV1109/RV1126等,会有所不同。● app:存放上层应用 app,主要是 qcamera/qfm/qplayer/settings 等一些应用程序。● buildroot:基于 bu
    万象奥科 2023-09-26 16:15 97浏览
  • 1. Kernel手动编译1.1       kernel查询帮助 使用./build.sh -h kernel查看kernel的详细编译命令如下所示。图1.1编译内核 上图表示,单独编译kernel固件分为三步,进入kernel目录,选择默认配置文件,编译镜像。 1.2       kernel默
    万象奥科 2023-09-26 17:14 83浏览
  • 在众多行业的数字化转型过程中,基于硬件的数据处理加速是构建高性能、高效率智能系统的关键之处,因而市场上出现了诸如FPGA、GPU和xPU等许多通用或者面向特定应用(如NPU)的硬件加速器。尽管它们的性能和效率都高于通用处理器,但是开发人员还是一直在为各种新兴应用寻找可重构的但性能又如ASIC一样的硬件加速器,同时还可以最大限度重用其开发成果。 高性能FPGA成为了诸多智能化应用的首选硬件加速器,相对于目前大热的GPU来进行数据加速,采用FPGA的实现方式通常可以带来更低的延迟和更高的能效;
    电子科技圈 2023-09-26 13:17 92浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦