diff --git a/Assignments/Assignment4/E-doc Part/第4次作业-柯劲帆-21281280.md b/Assignments/Assignment4/E-doc Part/第4次作业-柯劲帆-21281280.md new file mode 100644 index 0000000..6254813 --- /dev/null +++ b/Assignments/Assignment4/E-doc Part/第4次作业-柯劲帆-21281280.md @@ -0,0 +1,313 @@ +# Inventory: inventory +- request + + | 字段名称 | 比特数 | + | ------------ | ----------- | + | SOF | | + | Flags | 8 bits | + | Inventory | 8 bits | + | Optional AFI | 8 bits | + | Mask length | 8 bits | + | Mask value | 0 – 64 bits | + | CRC16 | 16 bits | + | EOF | | + +- responses + + | 字段名称 | 比特数 | + | -------- | ------- | + | SOF | | + | Flags | 8 bits | + | DSFID | 8 bits | + | UID | 64 bits | + | CRC16 | 16 bits | + | EOF | | + +- 函数 + + ```c + int inventory( + uint8 u8Flag, + uint8 u8AFI, + uint8 u8MaskLen, // bitlen + uint8 au8MaskValue[8], // . + uint8 *pu8RxFlags, + uint8 *pu8RxDSFID, + uint8 au8RxUID[8] + ); + ``` + + 返回: + + - `1` 表示清晰收到一个 VICC 的应答; + - `0` 表示没有 VICC 应答; + - `<0` 表示有多个 VICC 应答; + + 如果返回 `< 0` ,或者:VCD 发送 EOF,继续点名,或者:修改 masklen & maskvalue,重新发送 inventory() + + + +# Stay quiet: + +- request + + | 字段名称 | 比特数 | + | ---------- | ------- | + | SOF | | + | Flags | 8 bits | + | Stay quiet | 8 bits | + | UID | 64 bits | + | CRC16 | 16 bits | + | EOF | | + +- response + + 无 + +- 函数 + + ```c + int stayQuiet( + uint8 u8Flags, + uint8 au8UID[8] + ); + ``` + + + +# Read Single Block + +- request + + | 字段名称 | 比特数 | + | ----------------- | ------- | + | SOF | | + | Flags | 8 bits | + | Read single block | 8 bits | + | UID | 64 bits | + | Block number | 8 bits | + | CRC16 | 16 bits | + | EOF | | + + request 中,是否存在 UID,由 flags 决定(address mode or select mode)。 + +- response + + | 字段名称 | 比特数 | + | ---------- | ------- | + | SOF | | + | Flags | 8 bits | + | Error code | 8 bits | + | CRC16 | 16 bits | + | EOF | | + + | 字段名称 | 比特数 | + | --------------------- | ------- | + | SOF | | + | Flags | 8 bits | + | Block security status | 8 bits | + | Data | | + | Block length | | + | CRC16 | 16 bits | + | EOF | | + +- 函数 + + ```c + int readSingleBlk( + uint8 u8Flags, + uint8 au8UID[8], + uint8 u8BlkNo, + uint8 *pu8RxFlags, + uint8 *pu8ErrCode + uint8 *pu8BlkSecurityStatus, + uint8 au8Dat[] + ); + ``` + + 返回值:flags. + 是否返回:pu8BlkSecurityStatus,要看 u8Flags 中 optional_flag。 + + 或 + + ```c + // 返回:0,正确,否则 Flags. + Uint8 readSingleBlk( + uint8 u8VisitMode, // 1 for address mode, 0 for select mode + uint8 u8Optionalflag; // 1 return security status; + uint8 au8UID[8], + uint8 u8BlkNo, + uint8 *pu8BlkSecurityStatus, // optionalflag = 1 时,有效; + uint8 au8Dat[] + ); + ``` + + + +# Write Single Block + +- request + + | 字段名称 | 比特数 | + | ------------------ | ------- | + | SOF | | + | Flags | 8 bits | + | Write single block | 8 bits | + | UID | 64 bits | + | Block number | 8 bits | + | Data | | + | Block length | | + | CRC16 | 16 bits | + | EOF | | + +- response + + - 有 Error_flag + + | 字段名称 | 比特数 | + | ---------- | ------- | + | SOF | | + | Flags | 8 bits | + | Error code | 8 bits | + | CRC16 | 16 bits | + | EOF | | + + - 无 Error_flag + + | 字段名称 | 比特数 | + | ---------- | ------- | + | SOF | | + | Flags | 8 bits | + | Error code | 8 bits | + | CRC16 | 16 bits | + | EOF | | + +- 函数 + + ```c + int writeSingleBlk( + uint8 u8Flags, + uint8 au8UID[8], + uint8 u8BlkNo, + uint8 au8Dat[], + uint8 *pu8RxFlags, + uint8 *pu8ErrCode + ); + ``` + + + +# Read multiple Blocks + +- request + + | 字段名称 | 比特数 | + | ------------------- | ------- | + | SOF | | + | Flags | 8 bits | + | Read multiple block | 8 bits | + | UID | 64 bits | + | First block number | 8 bits | + | Number of blocks | 8 bits | + | CRC16 | 16 bits | + | EOF | | + +- response + + - 有 Error_flag + + | 字段名称 | 比特数 | + | ---------- | ------- | + | SOF | | + | Flags | 8 bits | + | Error code | 8 bits | + | CRC16 | 16 bits | + | EOF | | + + - 无 Error_flag + + | 字段名称 | 比特数 | + | --------------------- | ------- | + | SOF | | + | Flags | 8 bits | + | Block security status | 8 bits | + | Data | | + | Block length | | + | CRC16 | 16 bits | + | EOF | | + + **注**: Data 和 Block length 的内容根据需要重复。 + +- 函数 + + ```c + int readMultipleBlks( + uint8 u8Flags, + uint8 au8UID[8], + uint8 u8BlkFirstNo, + uint8 u8BlkNums, + uint8 *pu8RxFlags, + uint8 *pu8ErrCode + uint8 au8BlkSecurityStatus[], + uint8 au8Dat[] + ); + ``` + + + + # Write multiple Blocks + +- request + + | 字段名称 | 比特数 | + | -------------------- | ------- | + | SOF | | + | Flags | 8 bits | + | Write multiple block | 8 bits | + | UID | 64 bits | + | First block number | 8 bits | + | Number of blocks | 8 bits | + | Data | | + | Block length | | + | CRC16 | 16 bits | + | EOF | | + + **注**: Data 和 Block length 的内容根据需要重复。 + +- response + + - 有 Error_flag + + | 字段名称 | 比特数 | + | ---------- | ------- | + | SOF | | + | Flags | 8 bits | + | Error code | 8 bits | + | CRC16 | 16 bits | + | EOF | | + + - 无 Error_flag + + | 字段名称 | 比特数 | + | -------- | ------- | + | SOF | | + | Flags | 8 bits | + | CRC16 | 16 bits | + | EOF | | + +- 函数 + + ```c + int writeMultipleBlks ( + uint8 u8Flags, + uint8 au8UID[8], + uint8 u8BlkFirstNo, + uint8 u8BlkNums, + uint8 au8Dat[], + uint8 *pu8RxFlags, + uint8 *pu8ErrCode + ); + ``` + + + diff --git a/Assignments/Assignment4/E-doc Part/第4次作业-柯劲帆-21281280.pdf b/Assignments/Assignment4/E-doc Part/第4次作业-柯劲帆-21281280.pdf new file mode 100644 index 0000000..461433b Binary files /dev/null and b/Assignments/Assignment4/E-doc Part/第4次作业-柯劲帆-21281280.pdf differ diff --git a/Assignments/Assignment4/第4次作业-柯劲帆-21281280.pdf b/Assignments/Assignment4/第4次作业-柯劲帆-21281280.pdf new file mode 100644 index 0000000..954b454 Binary files /dev/null and b/Assignments/Assignment4/第4次作业-柯劲帆-21281280.pdf differ diff --git a/Labs/Lab1/source/images/15693-SOF and EOF.png b/Labs/Lab1/source/images/15693-SOF and EOF.png new file mode 100644 index 0000000..a4236e0 Binary files /dev/null and b/Labs/Lab1/source/images/15693-SOF and EOF.png differ diff --git a/Labs/Lab1/source/images/256取1-SOF.png b/Labs/Lab1/source/images/256取1-SOF.png new file mode 100644 index 0000000..a9afb1b Binary files /dev/null and b/Labs/Lab1/source/images/256取1-SOF.png differ diff --git a/Labs/Lab1/source/images/256取1.jpg b/Labs/Lab1/source/images/256取1.jpg new file mode 100644 index 0000000..cfd7b3c Binary files /dev/null and b/Labs/Lab1/source/images/256取1.jpg differ diff --git a/Labs/Lab1/source/images/256或4取1-EOF.png b/Labs/Lab1/source/images/256或4取1-EOF.png new file mode 100644 index 0000000..02f00a6 Binary files /dev/null and b/Labs/Lab1/source/images/256或4取1-EOF.png differ diff --git a/Labs/Lab1/source/images/4取1-SOF.png b/Labs/Lab1/source/images/4取1-SOF.png new file mode 100644 index 0000000..37ca34d Binary files /dev/null and b/Labs/Lab1/source/images/4取1-SOF.png differ diff --git a/Labs/Lab1/source/images/4取1.jpg b/Labs/Lab1/source/images/4取1.jpg new file mode 100644 index 0000000..9f69914 Binary files /dev/null and b/Labs/Lab1/source/images/4取1.jpg differ diff --git a/Labs/Lab1/source/images/ASK调制.jpg b/Labs/Lab1/source/images/ASK调制.jpg new file mode 100644 index 0000000..ef123bc Binary files /dev/null and b/Labs/Lab1/source/images/ASK调制.jpg differ diff --git a/Labs/Lab1/source/images/EOF.jpg b/Labs/Lab1/source/images/EOF.jpg new file mode 100644 index 0000000..3ac4b90 Binary files /dev/null and b/Labs/Lab1/source/images/EOF.jpg differ diff --git a/Labs/Lab1/source/images/SOF-256取1.jpg b/Labs/Lab1/source/images/SOF-256取1.jpg new file mode 100644 index 0000000..575aab8 Binary files /dev/null and b/Labs/Lab1/source/images/SOF-256取1.jpg differ diff --git a/Labs/Lab1/tmp/IMG_20240509_180229.jpg b/Labs/Lab1/source/images/SOF-4取1.jpg similarity index 100% rename from Labs/Lab1/tmp/IMG_20240509_180229.jpg rename to Labs/Lab1/source/images/SOF-4取1.jpg diff --git a/Labs/Lab1/source/images/单副载波.jpg b/Labs/Lab1/source/images/单副载波.jpg new file mode 100644 index 0000000..8638e5d Binary files /dev/null and b/Labs/Lab1/source/images/单副载波.jpg differ diff --git a/Labs/Lab1/source/images/双副载波.jpg b/Labs/Lab1/source/images/双副载波.jpg new file mode 100644 index 0000000..eb8ec5f Binary files /dev/null and b/Labs/Lab1/source/images/双副载波.jpg differ diff --git a/Labs/Lab1/source/images/反相曼彻斯特编码-1种副载波.jpg b/Labs/Lab1/source/images/反相曼彻斯特编码-1种副载波.jpg new file mode 100644 index 0000000..ed6613c Binary files /dev/null and b/Labs/Lab1/source/images/反相曼彻斯特编码-1种副载波.jpg differ diff --git a/Labs/Lab1/source/images/反相曼彻斯特编码-2种副载波.jpg b/Labs/Lab1/source/images/反相曼彻斯特编码-2种副载波.jpg new file mode 100644 index 0000000..d9b636d Binary files /dev/null and b/Labs/Lab1/source/images/反相曼彻斯特编码-2种副载波.jpg differ diff --git a/Labs/Lab1/source/images/数据输出4取1.jpg b/Labs/Lab1/source/images/数据输出4取1.jpg new file mode 100644 index 0000000..a387747 Binary files /dev/null and b/Labs/Lab1/source/images/数据输出4取1.jpg differ diff --git a/Labs/Lab1/tmp/IMG_20240509_174208.jpg b/Labs/Lab1/source/images/载波1.jpg similarity index 100% rename from Labs/Lab1/tmp/IMG_20240509_174208.jpg rename to Labs/Lab1/source/images/载波1.jpg diff --git a/Labs/Lab1/tmp/IMG_20240509_174241.jpg b/Labs/Lab1/source/images/载波2.jpg similarity index 100% rename from Labs/Lab1/tmp/IMG_20240509_174241.jpg rename to Labs/Lab1/source/images/载波2.jpg diff --git a/Labs/Lab1/source/实验1_21281280_柯劲帆.md b/Labs/Lab1/source/实验1_21281280_柯劲帆.md new file mode 100644 index 0000000..2ba3db1 --- /dev/null +++ b/Labs/Lab1/source/实验1_21281280_柯劲帆.md @@ -0,0 +1,190 @@ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## 2.2. ASK 调制
+
+### 2.2.1. SOF - 4 取 1
+
+
+
+实验波形与[图 1-5 ](#i1_5)相符。
+
+### 2.2.2. SOF - 256 取 1
+
+
+
+实验波形与[图 1-2 ](#i1_2)相符。
+
+### 2.2.3. EOF
+
+
+
+实验波形与[图 1-3 ](#i1_3)和[图 1-6 ](#i1_6)相符。
+
+### 2.2.4. 数据输出 - 4 取 1
+
+
+
+实验波形与[图 1-4 ](#i1_4)相符。
+
+## 2.3. 副载波调制与解调
+
+### 2.3.1. 双副载波
+
+
+
+实验波形与[图 1-8 ](#i1_8)相符。
+
+### 2.3.2. 单副载波
+
+
+
+实验波形与[图 1-7 ](#i1_7)相符。
+
+
+
+### 3. 总结与感悟
+
+通过此次实验,我深入理解了ISO/IEC 15693协议在RFID系统中的实际应用,特别是 VCD 与 VICC 之间的通信机制。在实验过程中,我主要进行了以下几方面的学习和体会:
+
+1. 脉冲位置编码与反相曼彻斯特编码
+
+ - **脉冲位置编码**:通过实践256取1和4取1编码方式,我理解了如何在脉冲序列中通过改变脉冲的位置和宽度来表示数据信息。特别是通过SOF和EOF的编码违例,能够有效地标识帧的开始和结束,确保接收端能正确同步和解析数据。
+
+
+ - **反相曼彻斯特编码**:在VICC到VCD方向的通信中,反相曼彻斯特编码提供了一种可靠的方式,通过高低电平的变化来表示数据,并结合副载波调制,实现了稳定的数据传输。
+
+
+2. 调制技术
+
+ - **ASK调制**:通过实验,我体会到ASK调制的实现原理和优势。10% ASK调制在确保通信稳定性的同时,还能为无源标签提供持续的电源。这对于实现稳定的RFID通信至关重要。
+
+
+ - **副载波调制**:副载波调制尤其是在使用两种副载波频率的情况下,能够有效地提高数据传输的可靠性。通过对副载波频率$f_{s1}$和$f_{s2}$的实践,我理解了如何在不同频率下进行数据调制和解调。
+
+
+3. 实验波形对比
+
+通过对实验波形的观察和分析,我验证了实验结果与理论图示的一致性。这不仅加深了我对理论知识的理解,也提升了我在实际操作中的能力。
+
+4. 综合应用
+
+此次实验不仅让我掌握了ISO/IEC 15693协议的具体实现方式,还让我体会到数字通信系统中编码与调制技术的重要性。在实际应用中,这些技术能有效提高数据传输的效率和可靠性。
+
+**感悟**
+
+通过此次实验,我不仅提升了对RFID原理与应用的理解,也感受到数字通信系统的复杂性和精妙之处。实验中遇到的一些问题和挑战,比如如何正确实现脉冲位置编码和反相曼彻斯特编码,使我对细节的重要性有了更深的体会。同时,这也激发了我进一步学习和研究的兴趣。未来,我希望能将这些知识应用到更广泛的实际场景中,为物联网和智能系统的发展贡献自己的力量。
diff --git a/Labs/Lab1/tmp/IMG_20240509_172720.jpg b/Labs/Lab1/tmp/IMG_20240509_172720.jpg
deleted file mode 100644
index 1e4ef8d..0000000
Binary files a/Labs/Lab1/tmp/IMG_20240509_172720.jpg and /dev/null differ
diff --git a/Labs/Lab1/tmp/IMG_20240509_173118.jpg b/Labs/Lab1/tmp/IMG_20240509_173118.jpg
deleted file mode 100644
index 275549f..0000000
Binary files a/Labs/Lab1/tmp/IMG_20240509_173118.jpg and /dev/null differ
diff --git a/Labs/Lab1/tmp/IMG_20240509_180242.jpg b/Labs/Lab1/tmp/IMG_20240509_180242.jpg
deleted file mode 100644
index bbcc3f5..0000000
Binary files a/Labs/Lab1/tmp/IMG_20240509_180242.jpg and /dev/null differ
diff --git a/Labs/Lab1/tmp/IMG_20240509_180450.jpg b/Labs/Lab1/tmp/IMG_20240509_180450.jpg
deleted file mode 100644
index e45bda6..0000000
Binary files a/Labs/Lab1/tmp/IMG_20240509_180450.jpg and /dev/null differ
diff --git a/Labs/Lab1/tmp/IMG_20240509_180732.jpg b/Labs/Lab1/tmp/IMG_20240509_180732.jpg
deleted file mode 100644
index ce8b415..0000000
Binary files a/Labs/Lab1/tmp/IMG_20240509_180732.jpg and /dev/null differ
diff --git a/Labs/Lab1/实验1_21281280_柯劲帆.pdf b/Labs/Lab1/实验1_21281280_柯劲帆.pdf
new file mode 100644
index 0000000..619bff1
Binary files /dev/null and b/Labs/Lab1/实验1_21281280_柯劲帆.pdf differ