Linux中磁盘管理之格式化、分区、挂载-详解

一口Linux 2023-09-13 11:50

嗨喽,大家好,我是程序猿老王,程序猿老王就是我。
今天给大家介绍一下Linux中磁盘管理中格式化、分区、挂载等操作步骤,希望这篇文章对大家有所帮助。

一、磁盘知识

1.磁盘含义

磁盘(Disk)是一种用于存储和读取数据的物理设备,它由一个或多个旋转的磁性盘片组成。这些盘片通常由金属或玻璃制成,并涂有磁性材料。磁盘是计算机系统中主要的永久性存储介质之一。

2.磁盘工作机制

磁盘的工作机制是基于磁性材料的磁化和磁场感应原理。下面是磁盘的工作机制的基本过程:
  1. 磁化:磁盘上的磁性材料可以被磁化,即通过施加磁场来使得材料的磁性定向发生变化。这种磁化可以通过电磁磁铁或磁头产生的磁场来实现。
  2. 磁场感应:磁头是磁盘上的感应器,它可以感受到磁场的变化并将其转换为电信号。当磁头靠近磁盘表面时,它可以检测到磁性材料的磁化状态。
  3. 数据读取:在读取数据时,磁头通过感应磁场的变化来检测磁盘上的数据。当磁头经过磁化的区域时,感应到的磁场变化会转换为电信号,并由磁盘控制器解读为相应的数据。
  4. 数据写入:在写入数据时,磁头会通过施加磁场来改变磁盘上的磁化状态。磁头会根据要写入的数据,在磁盘上相应的位置创建或改变磁化模式,从而将数据存储在磁性材料中。
  5. 寻道和旋转:为了访问特定的磁道和扇区,磁头需要在磁盘表面上移动到目标位置,这个过程称为寻道操作。磁头的移动由磁盘驱动器控制,它们可以在磁盘半径方向上移动。另外,磁盘通过旋转盘片来实现高速读写操作,旋转速度通常以每分钟转数(RPM)来表示。
通过控制磁场和磁头的移动,磁盘实现了数据的存储和检索。这种机制具有较大的存储容量、较低的成本以及相对较快的读写速度,使得磁盘成为计算机系统中主要的永久性存储介质之一。

3.磁盘的专业名称

3.1盘片 片面 和 磁头

盘片(Platter):盘片是硬盘驱动器内部的圆形磁性盘,通常由金属或玻璃材料制成。硬盘驱动器可以包含一个或多个盘片,它们堆叠在一起并通过中央轴固定。每个盘片都具有两个平整的表面,称为片面。
片面(Platter Surface):片面是盘片上的一个平整表面,用于存储数据。一个盘片通常具有两个片面,也就是两个可用于读写数据的表面。每个片面都被划分为一系列同心圆形的磁道,每个磁道又被划分为多个扇区。
磁头(Head):磁头是位于盘片上方的装置,用于读取和写入数据。在硬盘驱动器中,磁头位于移动的磁臂上,并可以沿着盘片的半径方向移动。每个片面上都有一个磁头与磁盘进行数据交互。因此,如果硬盘驱动器有多个盘片,每个片面上都会有一个磁头。

3.2扇区 和 磁道

扇区(Sector):扇区是磁盘上最小的存储单位。它是磁道上的一个小片段,通常的大小为512字节或4KB。每个磁盘扇区都有一个唯一的地址,通过这个地址可以定位和访问特定的数据。操作系统和文件系统将数据组织成扇区,然后使用扇区地址来读取或写入数据。
磁道(Track):磁道是磁盘表面上的一个圆环,沿着盘片的半径方向延伸。一个磁盘上通常有多个磁道,它们被编号以便标识和访问特定的磁道。每个磁道可以包含多个扇区,形成一个数据环。磁盘的磁头可以在磁盘表面上移动到指定的磁道上,然后读取或写入磁道上的扇区数据。

3.3磁头 和 柱面

磁头(Head):磁头是位于硬盘驱动器内部的装置,用于读取和写入数据。在硬盘驱动器中,磁头位于移动的磁臂上,并可以沿着盘片的半径方向移动。每个片面上都有一个磁头与磁盘进行数据交互。磁头负责在特定的磁道上读取或写入数据。通过控制磁头的移动和定位,可以将磁头定位到目标磁道上的特定位置,以进行数据的读写操作。
柱面(Cylinder):柱面是硬盘驱动器内部的一个概念,表示位于多个盘片上的相同半径位置的磁道的集合。换句话说,柱面由位于相同半径位置的多个盘片上的磁道垂直堆叠而成。柱面号用于表示磁盘上具有相同半径位置的磁道组合。通过将磁头移动到特定柱面,可以访问该柱面上的所有磁道。

4.磁盘分类

根据接口类型,磁盘可以分为多种类型,以下是一些常见的磁盘接口分类:
  • SATA(Serial ATA)磁盘:SATA是目前最为常见的磁盘接口类型,广泛用于台式机和笔记本电脑。它提供了较高的数据传输速度和较低的成本,支持热插拔和热交换。
  • SAS(Serial Attached SCSI)磁盘:SAS是一种高性能磁盘接口,主要用于企业级服务器和存储系统。它提供了更高的数据传输速度和更可靠的连接,支持多路径冗余和热插拔功能。
  • SCSI(Small Computer System Interface)磁盘:SCSI是一种早期的磁盘接口,用于连接高性能计算机系统和外部存储设备。它提供了高速数据传输和灵活的设备连接选项,支持多设备链路和高级功能。
  • NVMe(Non-Volatile Memory Express)磁盘:NVMe是一种基于PCIe(Peripheral Component Interconnect Express)总线的高性能磁盘接口。它专为固态硬盘(SSD)设计,具有低延迟和高速数据传输能力,广泛用于高性能计算和数据中心环境。
这些磁盘接口类型在性能、可靠性、兼容性和成本等方面有所区别,适用于不同的应用场景和需求。选择合适的磁盘接口类型要考虑主机设备的接口支持、数据传输需求和预算限制。

二、磁盘分区优势

管理和组织数据:分区可以帮助您更好地管理和组织磁盘上的数据。通过将磁盘分割为多个区域,您可以将不同类型的数据存储在不同的分区中,例如操作系统文件、应用程序、用户数据等。这样可以更好地组织文件,并使其更易于管理和维护。没有分区时,所有数据都存储在同一个磁盘上,可能会导致数据混乱和难以管理。
性能:分区可以对磁盘的性能产生影响。通过将数据分布在多个分区中,可以提高磁盘访问的效率。例如,将操作系统和程序文件分配到一个分区,将用户数据分配到另一个分区,这样可以减少磁头的移动距离,提高读写速度。没有分区时,所有数据都存储在同一个区域,可能会导致磁头频繁移动,降低访问效率。
安全性和稳定性:通过将系统和用户数据分开存储在不同的分区中,可以提高系统的安全性和稳定性。如果发生系统故障或数据损坏,可能只影响某个特定的分区,而不会影响整个磁盘上的数据。没有分区时,数据的安全性和稳定性可能会受到更大的威胁,因为整个磁盘上的数据都处于相同的风险之中。
多引导系统:分区使得在同一磁盘上安装多个操作系统变得可能。每个操作系统可以位于不同的分区中,这样可以实现多引导,使用户可以在启动时选择要运行的操作系统。如果不对磁盘进行分区,则无法轻松实现多引导系统。
兼容性:某些文件系统在使用时需要特定的分区类型。通过将磁盘进行分区,可以选择适当的分区类型以支持所需的文件系统。没有分区时,可能无法满足特定文件系统的要求。
总之,磁盘分区提供了更好的数据管理、性能、安全性和灵活性。它允许更好地组织和管理磁盘上的数据,提高性能,提供数据的安全性和稳定性,并允许实现多引导系统和不同文件系统的兼容性。没有分区时,这些优势和功能将无法实现。

三、磁盘分区

在Linux下,磁盘格式化、分区和挂载的详细步骤如下所示:

1.确定磁盘设备

使用以下命令来查看可用磁盘设备:

# fdisk -l
Disk /dev/mmcblk1: 7456 MB, 7818182656 bytes, 15269888 sectors
238592 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Disk /dev/mmcblk1 doesn't contain a valid partition table
Disk /dev/mmcblk1boot0: 4 MB, 4194304 bytes, 8192 sectors
128 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Disk /dev/mmcblk1boot0 doesn't contain a valid partition table
Disk /dev/mmcblk1boot1: 4 MB, 4194304 bytes, 8192 sectors
128 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Disk /dev/mmcblk1boot1 doesn't contain a valid partition table
Disk /dev/mmcblk0: 15 GB, 15931539456 bytes, 31116288 sectors
486192 cylinders, 4 heads, 16 sectors/track
Units: sectors of 1 * 512 = 512 bytes

Device       Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type
/dev/mmcblk0p1 *  0,32,33     8,73,1            2048     133119     131072 64.0M  c Win95 FAT32 (LBA)
/dev/mmcblk0p2    8,73,2      912,229,21      133120   31116287   30983168 14.783 Linux

从上面可以得出:

/dev/mmcblk1:容量为7456 MB的磁盘。238592柱面,4个磁头,每个磁道16个扇区。磁盘上没有有效的分区表。 

/dev/mmcblk1boot0/dev/mmcblk1boot1是磁盘的引导区,大小为4 MB,但它们没有有效的分区表。 

/dev/mmcblk0:容量为15 GB的磁盘。486192柱面,4个磁头,每个磁道16个扇区。包含两个分区:

  • /dev/mmcblk0p1是引导分区,大小为64.0M,使用Win95 FAT32(LBA)文件系统。
  • /dev/mmcblk0p2是第二个分区,大小为14.7G,使用Linux文件系统(ID为83)。

2.使用fdisk命令对磁盘进行分区

# fdisk /dev/mmcblk1

The number of cylinders for this disk is set to 238592.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help):

此时命令栏提示输入'm',可以看到有如下参数:

Command (m for help): m
Command Action
a       toggle a bootable flag
b       edit bsd disklabel
c       toggle the dos compatibility flag
d       delete a partition
l       list known partition types
n       add a new partition
o       create a new empty DOS partition table
p       print the partition table
q       quit without saving changes
s       create a new empty Sun disklabel
t       change a partition's system id
u       change display/entry units
v       verify the partition table
w       write table to disk and exit
x       extra functionality (experts only)

Command (m for help): 

各指令含义如下:

  • a: 切换引导标志(toggle a bootable flag)
  • b: 编辑BSD磁盘标签(edit bsd disklabel)
  • c: 切换DOS兼容性标志(toggle the dos compatibility flag)
  • d: 删除分区(delete a partition)
  • l: 列出已知的分区类型(list known partition types)
  • n: 添加新分区(add a new partition)
  • o: 创建一个新的空DOS分区表(create a new empty DOS partition table)
  • p: 打印分区表(print the partition table)
  • q: 退出而不保存更改(quit without saving changes)
  • s: 创建一个新的空Sun磁盘标签(create a new empty Sun disklabel)
  • t: 更改分区的系统ID(change a partition's system id)
  • u: 更改显示/输入单位(change display/entry units)
  • v: 验证分区表(verify the partition table)
  • w: 将表写入磁盘并退出(write table to disk and exit)
  • x: 额外功能(仅供专家使用)(extra functionality (experts only)) 继续往下,进行创建分区操作:
Command (m for help): n
Partition type
   p   primary partition (1-4)
   e   extended
p
Partition number (1-4): 1
First sector (16-15269887default 16)
Using default value 16
Last sector or +size
{,K,M,G,T} (16-15269887default 15269887): +32M

Command (m for help): n
Partition type
   p   primary partition (1-4)
   e   extended

p
Partition number (1-4): 2
First sector (65552-15269887default 65552)
Using default value 65552
Last sector or +size
{,K,M,G,T} (65552-15269887default 15269887): 
Using default value 15269887

Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): c
Changed system type of partition 1 to c (Win95 FAT32 (LBA))

Command (m for help): a
Partition number (1-4): 1

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table
[ 1334.059435]  mmcblk1: p1 p2

以下是对上面输入命令的详细解释:

  1. 使用命令'n'创建一个新的分区:
  • 选择主分区(primary partition)类型,输入'p'
  • 输入分区号,这里选择1
  • 输入起始扇区,默认为16,可以直接按回车键使用默认值。
  • 输入结束扇区或者分区大小,这里输入'+32M'表示分区大小为32MB。
  1. 使用命令'n'再次创建一个新的分区:
  • 选择主分区(primary partition)类型,输入'p'
  • 输入分区号,这里选择2
  • 输入起始扇区,默认为65552,可以直接按回车键使用默认值。
  • 输入结束扇区或者分区大小,这里使用默认值15269887。
  1. 使用命令't'设置分区类型:
  • 输入要设置类型的分区号,这里选择1
  • 输入十六进制代码(Hex code),这里输入'c'表示将分区1的系统类型设置为Win95 FAT32(LBA)。
  1. 使用命令'a'设置引导标志:
  • 输入要设置引导标志的分区号,这里选择1
  1. 使用命令'w'保存更改并退出:
  • 确认分区表已经被修改,并且调用ioctl()重新读取分区表。
  • 提示分区表已经被修改,并成功保存更改。
最后,磁盘分区表将被修改,分区1被设置为Win95 FAT32(LBA)类型,并且设置为引导分区。
请注意,这些操作可能会对磁盘上的数据产生影响,请确保在进行此类操作之前备份重要数据

四、磁盘格式化

磁盘格式化是指在磁盘上创建文件系统以准备存储数据的过程。通过格式化,磁盘将被分区划分为逻辑块,并创建用于存储和组织文件的文件系统结构。格式化磁盘将清除磁盘上的所有数据,并为其提供一个干净的文件系统环境,使其可以开始存储新的数据。 
这里,我们将上面的两个分区分别格式化为Fat32格式的文件系统和ext4格式的文件系统
  • '/dev/mmcblk1p1'格式化为Fat32格式的文件系统
  • '/dev/mmcblk1p2'格式化为ext4格式的文件系统

Fat32格式,使用命令如下:

mkfs.vfat -F 32 -n "boot" /dev/mmcblk1p1

每个选项的含义解释如下:

  • -F 32:指定创建的文件系统类型为FAT32。
  • -n MyVolume:设置卷标为"MyVolume",该卷标将作为文件系统的名称显示。
  • /dev/mmcblk1p1:是要格式化的设备或分区

ext4格式,使用命令如下:

mkfs.ext4 -F -L "rootfs" /dev/mmcblk1p2

-/bin/sh: mkfs.ext4: not found 

每个选项的含义解释如下:

  • -F:强制进行格式化,即使设备已经被挂载。
  • -L "rootfs":设置文件系统的标签为"rootfs",该标签将作为文件系统的名称显示。
  • /dev/mmcblk1p2:要格式化的设备或分区。
这里我们的文件系统不支持mkfs.ext4格式,但是可以使用它的孪生兄弟“mke2fs”,指令如下:
mke2fs -F -L "rootfs" /dev/mmcblk1p2

Filesystem label=rootfs
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
475136 inodes, 1900542 blocks
95027 blocks (5%) reserved for the super user
First data block=0
Maximum filesystem blocks=4194304
58 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768983041638402293762949128192008847361605632
/ # 
现在我们已经将上面的两个分区格式化完成了,下一步就是挂载分区。

五、磁盘挂载

1.创建挂载点

首先,您需要选择一个目录作为挂载点。可以使用mkdir命令创建一个空目录作为挂载点,例如:
mkdir /mnt/boot

2.执行挂载命令

使用mount命令将文件系统挂载到指定的挂载点上,例如:

mount /dev/mmcblk1p1 /mnt/boot

使用“df”指令查看是否挂载成功,命令如下:

# df -a
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root             15141732    161948  14188824   1% /
devtmpfs                216388         0    216388   0% /dev
proc                         0         0         0   0% /proc
tmpfs                   249668         0    249668   0% /tmp
sysfs                        0         0         0   0% /sys
devpts                       0         0         0   0% /dev/pts
/dev/mmcblk1p1           32260         1     32260   0% /mnt/boot

很明显已经’/dev/mmcblk1p1‘分区已经成功挂载到’/mnt/boot‘目录下。

3.访问文件系统

现在,可以通过挂载点来访问和操作文件系统中的文件和目录。
例如,您可以使用cd命令进入挂载点,并使用其他文件操作命令进行文件的读取、写入等操作:
cd /mnt/boot
touch test.txt
然后掉电重启开发板,再次查看'/mnt/boot'下是否有test.txt文件:
# ls /mnt/boot/
/ # 
很明显是没有test.txt文件,磁盘的'/dev/mmcblk1p1'分区未进行挂载到'/mnt/boot'目录下,因此在'/mnt/boot'下是看不到test.txt文件的。
# df -a
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/root             15141732    161948  14188824   1% /
devtmpfs                216388         0    216388   0% /dev
proc                         0         0         0   0% /proc
tmpfs                   249668         0    249668   0% /tmp
sysfs                        0         0         0   0% /sys
devpts                       0         0         0   0% /dev/pts
test.txt文件是保存在磁盘的'/dev/mmcblk1p1'分区,掉电后需要手动挂载到'/mnt/boot'该目录下,才能查看到test.txt文件,如下:
# mount /dev/mmcblk1p1 /mnt/boot
[  179.885442] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

# ls /mnt/boot/
test.txt
#

另一个分区挂载如下:

mkdir /mnt/rootfs
mount /dev/mmcblk1p2 /mnt/rootfs
# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                14.4G    158.2M     13.5G   1% /
devtmpfs                211.3M         0    211.3M   0% /dev
tmpfs                   243.8M         0    243.8M   0% /tmp
/dev/mmcblk1p1           31.5M       512     31.5M   0% /mnt/boot
/dev/mmcblk1p2            7.1G     20.0K      6.8G   0% /mnt/rootfs

六、开机自动挂载

1.设备路径挂载

如果希望在系统启动时自动挂载分区,可以编辑/etc/fstab文件并添加相应的条目。例如:
#                
proc            /proc           proc    defaults        0       0
tmpfs           /tmp            tmpfs   defaults        0       0
sysfs           /sys            sysfs   defaults        0       0
/dev/mmcblk1p1  /mnt/boot       vfat    defaults        0       0
/dev/mmcblk1p2  /mnt/rootfs     ext4    defaults        0       0

重新启动开发板,使用'df'命令查看是否自动挂载

# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                14.4G    158.2M     13.5G   1% /
devtmpfs                211.3M         0    211.3M   0% /dev
tmpfs                   243.8M         0    243.8M   0% /tmp
/dev/mmcblk1p1           31.5M       512     31.5M   0% /mnt/boot
/dev/mmcblk1p2            7.1G     20.0K      6.8G   0% /mnt/rootfs

ok,自动挂载成功。

2.UUID挂载

另一种挂载方法,这里在教大家使用UUID来进行自动挂载,如下:

获取分区的UUID:使用以下命令各分区的UUID:

# blkid 
/dev/mmcblk0p2: LABEL="rootfs" UUID="4bdc82c7-5e83-4992-9966-cd99a2317944" TYPE="ext4"
/dev/mmcblk0p1: LABEL="boot" UUID="DF8D-2A71" TYPE="vfat"
/dev/mmcblk1p2: LABEL="rootfs" UUID="54b75bd6-7cdf-4e80-aa48-1af163bf61f3" TYPE="ext2"
/dev/mmcblk1p1: TYPE="vfat"

编辑/etc/fstab文件并添加相应的条目。例如:

#                
proc            /proc           proc    defaults        0       0
tmpfs           /tmp            tmpfs   defaults        0       0
sysfs           /sys            sysfs   defaults        0       0
UUID=54b75bd6-7cdf-4e80-aa48-1af163bf61f3   /mnt/rootfs ext4 defaults 0 0

保存后,重启开发板,成功自动挂载,如下:

# df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                14.4G    158.2M     13.5G   1% /
devtmpfs                211.3M         0    211.3M   0% /dev
tmpfs                   243.8M         0    243.8M   0% /tmp
/dev/mmcblk1p2            7.1G     20.0K      6.8G   0% /mnt/rootfs
在挂载文件系统时,您可以使用设备路径(如 /dev/mmcblk1p1)或文件系统的UUID来标识要挂载的分区。这两种方法各有一些区别和好处:

1.设备路径 (/dev/mmcblk1p1):

  • 标识分区的路径:使用设备路径是一种直接而简单的方法来标识要挂载的分区。它基于设备文件的物理路径,可以明确地指定要挂载的分区。例如,'/dev/mmcblk1p1' 表示第二个MMC类型的磁盘的第一个分区。

  • 相对容易记忆:设备路径通常较短且易于记忆,因为它们直接与设备文件的名称相关。

但是,设备路径可能会受到设备插入和拔出的影响。如果您的系统中存在多个磁盘或设备连接状态发生变化,设备路径可能会改变。

2.文件系统UUID:

  • 标识分区的唯一性:每个文件系统都有一个唯一的UUID(通用唯一标识符),用于识别分区。UUID是在创建文件系统时生成的,并且是全局唯一的。它不受设备连接状态的影响,因此即使设备路径发生变化,UUID仍将保持不变。

  • 稳定性和持久性:使用UUID来挂载分区可以提供更稳定和持久的挂载方式,因为即使重新启动系统或更改设备连接状态,UUID标识的分区仍然可以准确地被找到。

  • 更适合自动化和脚本:使用UUID可以更方便地进行自动化操作和脚本编写,因为UUID提供了一个固定的标识符来唯一标识特定的分区。

总的来说,使用设备路径或UUID进行挂载都是可行的方法,具体取决于您的需求和使用场景。如果您的系统中没有频繁插拔设备并且不涉及自动化操作,使用设备路径可能更加简单和直接。而如果您需要更稳定和持久的挂载方式,以及更适合自动化操作,使用UUID则更为可靠和推荐。
今天的内容到此就完了,感谢大家的收看,如有不正之处,欢迎批评指正,下期再见!
-END-

往期精彩文章推荐:

1.详细讲解u-boot之网络移植与调试

2.u-boot启动流程分析-史上最全最详细

3.u-boot命令之EMMC和SD卡操作命令详解

4.移植Linux 6.3.5系统到imx6ull开发板

5.rootfs根文件系统制作及挂载方法-详解

关于更多嵌入式C语言、FreeRTOS、RT-Thread、Linux应用编程、linux驱动等相关知识,关注公众号【嵌入式Linux知识共享】,后续精彩内容及时收看了解。


一口Linux 写点代码,写点人生!
评论
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 73浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-10 16:13 105浏览
  • 智能汽车可替换LED前照灯控制运行的原理涉及多个方面,包括自适应前照灯系统(AFS)的工作原理、传感器的应用、步进电机的控制以及模糊控制策略等。当下时代的智能汽车灯光控制系统通过车载网关控制单元集中控制,表现特殊点的有特斯拉,仅通过前车身控制器,整个系统就包括了灯光旋转开关、车灯变光开关、左LED前照灯总成、右LED前照灯总成、转向柱电子控制单元、CAN数据总线接口、组合仪表控制单元、车载网关控制单元等器件。变光开关、转向开关和辅助操作系统一般连为一体,开关之间通过内部线束和转向柱装置连接为多,
    lauguo2013 2024-12-10 15:53 78浏览
  • 概述 通过前面的研究学习,已经可以在CycloneVGX器件中成功实现完整的TDC(或者说完整的TDL,即延时线),测试结果也比较满足,解决了超大BIN尺寸以及大量0尺寸BIN的问题,但是还是存在一些之前系列器件还未遇到的问题,这些问题将在本文中进行详细描述介绍。 在五代Cyclone器件内部系统时钟受限的情况下,意味着大量逻辑资源将被浪费在于实现较大长度的TDL上面。是否可以找到方法可以对此前TDL的长度进行优化呢?本文还将探讨这个问题。TDC前段BIN颗粒堵塞问题分析 将延时链在逻辑中实现后
    coyoo 2024-12-10 13:28 101浏览
  • 我的一台很多年前人家不要了的九十年代SONY台式组合音响,接手时只有CD功能不行了,因为不需要,也就没修,只使用收音机、磁带机和外接信号功能就够了。最近五年在外地,就断电闲置,没使用了。今年9月回到家里,就一个劲儿地忙着收拾家当,忙了一个多月,太多事啦!修了电气,清理了闲置不用了的电器和电子,就是一个劲儿地扔扔扔!几十年的“工匠式”收留收藏,只能断舍离,拆解不过来的了。一天,忽然感觉室内有股臭味,用鼻子的嗅觉功能朝着臭味重的方向寻找,觉得应该就是这台组合音响?怎么会呢?这无机物的东西不会腐臭吧?
    自做自受 2024-12-10 16:34 136浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 70浏览
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 45浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 44浏览
  •         在有电流流过的导线周围会感生出磁场,再用霍尔器件检测由电流感生的磁场,即可测出产生这个磁场的电流的量值。由此就可以构成霍尔电流、电压传感器。因为霍尔器件的输出电压与加在它上面的磁感应强度以及流过其中的工作电流的乘积成比例,是一个具有乘法器功能的器件,并且可与各种逻辑电路直接接口,还可以直接驱动各种性质的负载。因为霍尔器件的应用原理简单,信号处理方便,器件本身又具有一系列的du特优点,所以在变频器中也发挥了非常重要的作用。  &nb
    锦正茂科技 2024-12-10 12:57 76浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 84浏览
  •         霍尔传感器是根据霍尔效应制作的一种磁场传感器。霍尔效应是磁电效应的一种,这一现象是霍尔(A.H.Hall,1855—1938)于1879年在研究金属的导电机构时发现的。后来发现半导体、导电流体等也有这种效应,而半导体的霍尔效应比金属强得多,利用这现象制成的各种霍尔元件,广泛地应用于工业自动化技术、检测技术及信息处理等方面。霍尔效应是研究半导体材料性能的基本方法。通过霍尔效应实验测定的霍尔系数,能够判断半导体材料的导电类型、载流子浓度及载流子
    锦正茂科技 2024-12-10 11:07 64浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 66浏览
  • 【萤火工场CEM5826-M11测评】OLED显示雷达数据本文结合之前关于串口打印雷达监测数据的研究,进一步扩展至 OLED 屏幕显示。该项目整体分为两部分: 一、框架显示; 二、数据采集与填充显示。为了减小 MCU 负担,采用 局部刷新 的方案。1. 显示框架所需库函数 Wire.h 、Adafruit_GFX.h 、Adafruit_SSD1306.h . 代码#include #include #include #include "logo_128x64.h"#include "logo_
    无垠的广袤 2024-12-10 14:03 69浏览
  • 本文介绍Linux系统(Ubuntu/Debian通用)挂载exfat格式U盘的方法,触觉智能RK3562开发板演示,搭载4核A53处理器,主频高达2.0GHz;内置独立1Tops算力NPU,可应用于物联网网关、平板电脑、智能家居、教育电子、工业显示与控制等行业。修改对应的内核配置文件# 进入sdk目录cdrk3562_linux# 编辑内核配置文件vi./kernel-5.10/arch/arm64/configs/rockchip_linux_defconfig注:不清楚内核使用哪个defc
    Industio_触觉智能 2024-12-10 09:44 90浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦