You are currently viewing Ebook: THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN ARM CORTEX-M (trọn bộ)

Ebook: THIẾT KẾ HỆ THỐNG NHÚNG VỚI VI ĐIỀU KHIỂN ARM CORTEX-M (trọn bộ)

THIẾT KẾ HỆ THỐNG NHÚNG VỚI DÒNG VI ĐIỀU KHIÊN ARM CORTEX-M_dayhocstem.com

Tải sách

Chúng ta có thể dễ dàng tìm thấy các hệ thống nhúng (tên tiếng Anh là Embedded System) ở khắp mọi nơi trong cuộc sống hàng ngày. Hệ thống nhúng đang làm cho thế giới thông minh hơn và tiện lợi hơn. Số lượng các hệ thống nhúng đang phát triển nhanh chóng, đặc biệt là trong các ứng dụng vạn vật kết nối Internet IoT (viết tắt của cụm từ tiếng Anh Internet-of-Things) và truyền thông không dây. Thị trường hệ thống nhúng là một trong những lĩnh vực phát triển nhanh nhất trên thế giới. Như tên gọi, hệ thống nhúng là một hệ thống máy tính có mục đích đặc biệt được thiết kế để thực hiện các chức năng chuyên dụng. Một số hệ thống nhúng có ràng buộc thời gian thực được gọi là hệ thống nhúng thời gian thực (tên tiếng Anh là Real-time Embedded System). Một hệ thống nhúng bao gồm phần cứng và phần mềm đi kèm. Phần cứng bao gồm một bộ vi xử lý hoặc vi điều khiển với bộ nhớ ngoài gắn thêm, I/O và các thành phần khác như cảm biến, bàn phím, đèn LED, màn hình LCD và bất kỳ loại thiết bị truyền động nào. Phần mềm nhúng là trí não của một hệ thống nhúng. Hầu hết phần mềm hệ thống nhúng thời gian thực có các chương trình ứng dụng cụ thể được hỗ trợ bởi hệ điều hành thời gian thực RTOS (viết tắt của cụm từ tiếng Anh Real-time Operating System). Phần mềm nhúng thường được gọi là “firmware” vì phần mềm loại này được nạp vào bộ nhớ ROM, EPROM hoặc Flash, và sau khi được nạp vào hệ thống nhúng nó sẽ không bao giờ bị thay đổi trừ khi cần phải cập nhật lại hoặc thay thế.

        Đối với một máy tính đa năng, người dùng có thể cài đặt bất kỳ phần mềm nào để thực hiện tất cả các loại công việc như xử lý văn bản, lướt web, quản lý cơ sở dữ liệu và những công việc khác tùy theo mục đích của mình. Trái lại, hệ thống nhúng chỉ được sử dụng để thực hiện lặp đi lặp lại các chức năng được chỉ định cụ thể. Hệ thống nhúng đã được sử dụng trong hơn nửa thế kỷ kể từ khi bộ vi xử lý được phát triển. Chip vi xử lý Intel đầu tiên được thiết kế cho máy tính và các hệ thống đơn giản khác vào năm 1960. Kể từ đó, khi chi phí của bộ vi xử lý và vi điều khiển giảm xuống và năng lực chức năng được tăng cường, việc thay thế nhiều sản phẩm và hệ thống đắt tiền bằng các hệ thống nhúng trên cơ sở bộ vi xử lý hoặc vi điều khiển trở nên khả thi.

       Kể từ đầu những năm 2000, hàng trăm công ty đã được cấp phép sử dụng kiến trúc vi xử lý ARM trong các sản phẩm của họ. Hiện nay, số lượng các công ty được cấp phép đang tăng lên rất nhanh. Mặc dù người được cấp phép phải tuân theo tập lệnh và kiến ​​trúc vi xử lý ARM, họ có thể tự do triển khai các thiết bị ngoại vi như cổng I/O, ADC, Timers, DAC, SPI, I2C và UART, … khi họ muốn. Từ góc độ lập trình, trong khi chúng ta có thể viết chương trình bằng hợp ngữ cho lõi vi xử lý ARM và chạy nó trên bất kỳ chip ARM nào, thì chương trình được viết cho các cổng I/O của chip ARM cho công ty A sẽ không chạy trên chip ARM từ công ty B. Điều này là do các thanh ghi chức năng đặc biệt và vị trí địa chỉ vật lý của chúng để truy cập các cổng I/O không được chuẩn hóa và mỗi người được cấp phép thực hiện nó khác nhau.

          ARM lần đầu tiên giới thiệu dòng vi xử lý Cortex-M vào năm 2004. Kể từ đó, bộ xử lý Cortex-M đã nhận được sự chấp nhận rộng rãi như một bộ xử lý đa năng có khả năng mở rộng cao cho các vi điều khiển nhỏ. Tại thời điểm viết cuốn sách này, ARM tiếp tục là kiến trúc hàng đầu cho IoT và các thiết bị nhúng với kỷ lục 4,4 tỷ chip dựa trên vi xử lý Cortex-M được xuất xưởng trong quý 4 năm 2020 (Theo “Record Shipments” trên trang web https://www.arm.com/). Chúng có sẵn từ nhiều nhà cung cấp linh kiện bán dẫn hàng đầu và tốc độ phát triển không có dấu hiệu chậm lại. Dòng vi xử lý Cortex-M hiện đã trở thành một tiêu chuẩn công nghiệp. Vì vậy, kiến thức về cách sử dụng nó đang trở thành một kỹ năng cần thiết cho các nhà phát triển hệ thống nhúng chuyên nghiệp.

         Cuốn sách này nhằm mục đích vừa giới thiệu về các bộ xử lý ARM Cortex-M vừa hướng dẫn các nguyên tắc và kỹ thuật cơ bản về thiết kế và phát triển phần mềm ứng dụng chạy trên chúng. Trọng tâm được nhấn mạnh vào khía cạnh phát triển phần mềm của hệ thống nhúng. Cuốn sách được viết như một tài liệu hướng dẫn và các chương được sắp xếp theo trình tự từ các vấn đề đơn giản đến phức tạp. Mỗi chương có một số ví dụ trình bày các nguyên tắc chính được nêu trong cuốn sách này bằng cách sử dụng một lượng mã tối thiểu. Mỗi ví dụ được thiết kế để chạy trên bo mạch phát triển FRDM-KL46Z được trang bị bộ vi xử lý Cortex-M0. Người đọc sẽ được trải nghiệm thực tế về việc tự xây dựng các hệ thống nhúng qua các ví dụ cụ thể với cuốn sách này.

THIẾT KẾ HỆ THỐNG NHÚNG VỚI DÒNG VI ĐIỀU KHIÊN ARM CORTEX-M_dayhocstem.com

Kết cấu của cuốn sách

Cuốn sách gồm 2 phần được chia làm 15 chương.

PHẦN I CƠ BẢN

Chương 1           Giới thiệu về hệ thống máy tính nhúng

Chương 2           Ngôn ngữ lập trình C cho các hệ thống nhúng ARM

Chương 3           Giới thiệu về nền tảng máy tính nhúng FRDM-KL46Z

Chương 4           Vi xử lý ARM Cortex-M

Chương 5           Ghép nối ngoại vi số qua cổng GPIO

Chương 6           Ghép nối với thiết bị hiển thị

Chương 7           Ghép nối với cổng nối tiếp UART

Chương 8           Lập trình Timer

PHẦN II NÂNG CAO

Chương 9           Ghép nối ngoại vi sử dụng cơ chế ngắt

Chương 10         Ghép nối ngoại vi qua ADC và DAC

Chương 11         Ghép nối với thanh trượt cảm biến điện dung

Chương 12         Ghép nối ngoại vi qua chuẩn giao tiếp I2C

Chương 13         Ghép nối ngoại vi qua chuẩn giao tiếp SPI

Chương 14         Ghép nối với cơ cấu chấp hành

Chương 15         Hệ điều hành thời gian thực

          Nội dung mỗi chương đều được minh họa bằng các ví dụ cụ thể và sinh động với phần lớn lấy từ các tình huống ứng dụng thực tế nhằm giúp người đọc nhanh chóng nắm bắt được kiến thức và có thể áp dụng dễ dàng kiến thức đó vào trong thực tiễn.

           Cuốn sách này hữu ích cho sinh viên, người mới bắt đầu cũng như các nhà phát triển chuyên nghiệp và có kinh nghiệm về hệ thống nhúng với vi xử lý Cortex-M của ARM. Tuy nhiên, khi viết cuốn sách này người viết cũng giả định rằng bạn đọc đã có kiến thức cơ bản về cách sử dụng vi điều khiển và đã quen với việc lập trình bằng ngôn ngữ C. Ngoài ra, sẽ rất hữu ích nếu bạn đọc có kiến thức cơ bản về cách sử dụng trình gỡ lỗi Keil μVision và IDE.

          Các chương trình và ví dụ được trình bày trong cuốn sách đã được kiểm tra kỹ nhưng không thể tránh khỏi còn mắc lỗi. Rất mong bạn đọc góp ý để tác giả hoàn thiện cuốn sách. Mọi góp ý xin gửi về địa chỉ email hungnvnu@gmail.com.

THIẾT KẾ HỆ THỐNG NHÚNG VỚI DÒNG VI ĐIỀU KHIÊN ARM CORTEX-M_dayhocstem.com

MỤC LỤC

 LỜI NÓI ĐẦU.. 3

MỤC LỤC.. 6

PHẦN I CƠ BẢN.. 14

Chương 1        Giới thiệu về hệ thống máy tính nhúng. 15

1.1.       Khái niệm tổng quát về hệ thống máy tính. 15

1.2.       Phân biệt hệ thống máy tính nhúng và hệ thống máy tính thông dụng. 16

1.3.       Các đặc tính của hệ thống máy tính nhúng. 19

1.4.       Các thách thức trong thiết kế hệ thống máy tính nhúng. 20

1.5.       Các thành phần phần cứng của hệ thống máy tính nhúng. 21

1.5.1.    Bộ vi xử lý. 22

1.5.2.    Các mạch tích hợp chuyên dụng ASIC.. 27

1.5.3.    FPGA.. 27

1.5.4.    Bộ nhớ. 28

1.5.5.    Giao diện ghép nối I/O.. 32

1.5.6.    Cảm biến. 33

1.5.7.    Bộ truyền động. 34

1.5.8.    Các bộ định thời và bộ đếm.. 35

1.5.9.    Bus. 37

1.6.       Các thành phần phần mềm và công cụ phát triển. 38

1.6.1.    Các thành phần phần mềm.. 38

1.6.2.    Công cụ phát triển. 40

1.7.       Công cụ và kỹ thuật gỡ lỗi 42

Chương 2        Ngôn ngữ lập trình C cho các hệ thống nhúng ARM… 44

2.1.       Lập trình các hệ thống nhúng. 44

2.2.       Lập trình C.. 45

2.3.       Chương trình C nhúng mẫu. 46

2.4.       Các loại dữ liệu. 46

2.5.       Ép kiểu dữ liệu. 53

2.6.       Dẫn hướng biên dịch. 54

2.6.1.    Định nghĩa macro. 54

2.6.2.    Biên dịch có điều kiện. 55

2.6.3.    Bao gồm các tệp (#include) 57

2.6.4.    Nhúng mã hợp ngữ. 57

2.7.       Các toán tử xử lý theo từng bit Bitwise. 58

2.7.1.    Mặt nạ bit 59

2.7.2.    Kiểm tra một bit 62

2.7.3.    Toán tử kết hợp. 62

2.8.       Biến và hằng số. 63

2.8.1.    Const 64

2.8.2.    Static. 64

2.8.3.    Volatile. 67

2.8.4.    Register 69

2.8.5.    Automatic. 70

2.8.6.    Extern. 71

2.8.7.    Phạm vi biến. 71

2.9.       Con trỏ. 73

2.9.1.    Khai báo biến con trỏ. 74

2.9.2.    Cách sử dụng biến con trỏ. 75

2.10.     Cấu trúc. 76

2.10.1. Định nghĩa một cấu trúc. 76

2.10.2. Truy cập các thành viên của một cấu trúc. 77

2.11.     Hàm.. 78

2.11.1. Truyền tham số bằng giá trị 79

2.11.2. Truyền tham số bằng tham chiếu. 81

2.11.3. Macro dạng hàm.. 83

Chương 3        Giới thiệu về nền tảng máy tính nhúng FRDM-KL46Z   85

3.1.       Các đặc tính chính của kit FRMD-Kl46Z. 85

3.2.       Vi điều khiển Freesacle KL46Z256VLL4. 88

3.3.       Giao diện nạp chương trình OpenSDA tích hợp sẵn trên Kit 90

3.4.       Khối tạo xung nhịp. 93

Chương 4        Vi xử lý ARM Cortex-M… 98

4.1.       Tổng quan về vi xử lý ARM.. 98

4.2.       Dòng vi xử lý Cortex-M.. 100

4.2.1.    Các tính năng phổ biến trong bộ vi xử lý Cortex-M… 102

4.2.2.    Tính tương thích giữa các bộ vi xử lý Cortex-M… 104

4.2.3.    Cortex-M0. 106

4.2.4.    Cortex-M0+. 109

4.2.5.    Cortex-M3. 111

4.2.6.    Cortex-M4. 113

4.2.7.    Cortex-7. 114

4.3.       Tập lệnh ARM.. 115

4.4.       Kiến trúc vi xử lý Cortex-M.. 119

4.4.1.    Mô hình lập trình. 119

4.4.2.    Các thanh ghi 121

4.4.3.    Thanh ghi đặc biệt 124

4.4.4.    Bản đồ bộ nhớ Cortex-M và Bus. 131

Chương 5        Ghép nối ngoại vi số qua cổng GPIO.. 134

5.1.       Các chân I/O trên kit FRDM-KL46Z. 134

5.2.       Mạch cấp clock cho các cổng I/O.. 137

5.3.       Khối GPIO.. 139

5.3.1.    Địa chỉ của các khối GPIO.. 139

5.3.2.    Các thanh ghi bên trong mỗi cổng GPIO.. 140

5.4.       Ghép nối LED với cổng GPIO trên bo mạch FRDM-KL46Z. 145

5.4.1.    Điều khiển bật/tắt đèn LED xanh trên bo mạch FRDM-KL46Z  146

5.4.2.    Điều khiển bật/tắt hai đèn LED ở tốc độ khác nhau. 152

5.4.3.    Điều khiển LED ba màu (tri-color LED) 154

5.5.       Ghép nối đèn LED 7-đoạn với cổng GPIO.. 157

5.6.       Ghép nối phím bấm với cổng GPIO trên bo mạch FRDM-KL46Z  162

5.6.1.    Lập trình đọc trạng thái phím bấm.. 163

5.6.2.    Ghép nối với bàn phím.. 166

Câu hỏi ôn tập. 172

Chương 6        Ghép nối với thiết bị hiển thị 174

6.1.       Một số ưu điểm của LCD.. 174

6.2.       Lập trình ghép nối với LCD.. 174

6.2.1.    Gửi lệnh tới LCD.. 179

6.2.2.    Gửi dữ liệu lên màn hình LCD.. 180

6.2.3.    Kiểm tra cờ trạng thái bận của LCD.. 183

6.2.4.    Giao diện ghép nối LCD 4 bit 186

6.2.5.    Vị trí con trỏ trên LCD.. 190

6.3.       Lập trình ghép nối với LCD đồ họa. 190

6.3.1.    LCD đồ họa. 190

6.3.2.    Hiển thị văn bản trên LCD đồ họa. 197

6.4.       Lập trình ghép nối với LCD phân đoạn. 203

6.4.1.    Mô-đun LCD phân đoạn và bộ điều khiển. 203

6.4.2.    Lập trình SLCD.. 206

Câu hỏi ôn tập. 220

Chương 7        Ghép nối với cổng nối tiếp UART.. 221

7.1.       Khái niệm cơ bản về giao tiếp nối tiếp. 221

7.1.1.    Truyền song công toàn phần và bán song công. 223

7.1.2.    Giao tiếp nối tiếp không đồng bộ và khung dữ liệu. 224

7.1.3.    RS232 và các tiêu chuẩn I/O nối tiếp khác. 226

7.2.       Lập trình cổng UART. 228

Câu hỏi ôn tập. 259

Chương 8        Lập trình Timer. 261

8.1.       Giới thiệu về bộ đếm và bộ định thời 261

8.1.1.    Đếm sự kiện. 262

8.1.2.    Tạo thời gian trễ. 263

8.1.3.    Đo thời gian giữa hai sự kiện. 263

8.1.4.    Bộ đếm và bộ định thời trong các vi điều khiển. 264

8.2.       Bộ định thời System tick timer. 264

8.3.       Các bộ định thời của vi điều khiển KL46Z. 273

8.4.       Các kênh TPM và chức năng so sánh đầu ra. 288

8.5.       Sử dụng bộ định thời trong chế độ chụp đầu vào. 300

8.6.       Sử dụng bộ định thời làm bộ đếm sự kiện. 304

Câu hỏi ôn tập. 307

PHẦN II NÂNG CAO.. 308

Chương 9        Ghép nối ngoại vi sử dụng cơ chế ngắt 309

9.1.       Khái niệm ngắt và ngoại lệ trong ARM Cortex-M.. 309

9.1.1.    Cơ chế ngắt và hỏi vòng. 309

9.1.2.    Ngắt và các chế độ hoạt động của ARM Cortex-M… 312

9.2.       Lập trình ngắt cho cổng I/O.. 323

9.3.       Lập trình ngắt cổng nối tiếp UART. 336

9.4.       Lập trình ngắt của bộ định thời 341

9.5.       Lập trình ngắt của bộ định thời SysTick. 343

9.6.       Lập trình mức ưu tiên ngắt trong vi điều khiển NXP KL46Z. 346

Câu hỏi ôn tập. 352

Chương 10      Ghép nối ngoại vi qua ADC và DAC.. 353

10.1.     Các đặc trưng của ADC.. 353

10.2.     Lập trình ADC trên bo mạch FRDM-KL46Z. 361

10.3.     Ghép nối với cảm biến. 378

10.3.1. Ghép nối với cảm biến nhiệt độ. 378

10.3.2. Ghép nối với cảm biến ánh sáng. 385

10.4.     Lập trình ghép nối với DAC.. 387

10.4.1. Tạo tín hiệu răng cưa. 394

10.4.2. Tạo sóng sin. 395

Câu hỏi ôn tập: 399

Chương 11      Ghép nối với thanh trượt cảm biến điện dung. 401

11.1.     Mô-đun TSI 401

11.1.1. Tổng quan về mô-đun TSI 401

11.1.2. Hoạt động chức năng. 403

11.2.     Lập trình ghép nối mô-đun TSI với thanh trượt cảm biến điện dung  409

Chương 12      Ghép nối ngoại vi qua chuẩn giao tiếp I2C.. 412

12.1.     Giao diện ghép nối I2C.. 412

12.1.1. Kết nối trên bus I2C.. 412

12.1.2. Các nút trên bus I2C.. 414

12.1.3. Chuỗi báo hiệu cho truyền dữ liệu. 415

12.1.4. Định dạng bit 416

12.1.5. Định dạng khung truyền trong I2C.. 418

12.1.6. Định dạng Byte địa chỉ 418

12.1.7. Định dạng byte dữ liệu. 420

12.1.8. Kết hợp địa chỉ và byte dữ liệu. 420

12.1.9. Kéo dài xung nhịp. 422

12.1.10.        Hoạt động trọng tài 422

12.1.11.        Ghi nhiều byte theo loạt 423

12.1.12.        Đọc nhiều byte theo loạt 424

12.2.     Mô-đun I2C trên bo mạch FRDM-KL46Z. 425

12.2.1. Cấp xung nhịp clock cho mô-đun I2C.. 425

12.2.2. Thiết lập tốc độ xung nhịp. 426

12.2.3. Thiết lập Master hay Slave. 429

12.2.4. Quy trình các bước lập trình mô-đun I2C.. 433

12.3.     Lập trình ghép nối đồng hồ thời gian thực DS1337 qua bus I2C   436

12.3.1. Bản đồ địa chỉ của DS1337. 437

12.3.2. Các chế độ và vị trí địa chỉ cho thời gian và ngày. 439

12.3.3. Thanh ghi điều khiển của DS1337. 440

12.3.4. Thao tác ghi tới DS1337. 442

12.3.5. Thao tác đọc từ DS1337. 442

12.3.6. Thiết lập thời gian cho DS1337. 443

12.3.7. Đặt ngày của DS1337. 445

12.3.8. Đọc ngày và giờ của DS1337. 448

Chương 13      Ghép nối ngoại vi qua chuẩn giao tiếp SPI. 453

13.1.     Giao thức bus SPI 453

13.1.1. Các tín hiệu trên bus SPI 453

13.1.2. Nguyên lý làm việc của SPI 458

13.1.3. Phân cực và pha của xung nhịp trong giao thức SPI 459

13.2.     Lập trình SPI trên NXP ARM KL46Z. 462

13.3.     Bộ điều khiển LED 7-đoạn MAX7221. 473

13.3.1. Sơ đồ chân và kết nối MAX7221. 474

13.3.2. Định dạng gói dữ liệu của MAX7221. 476

Câu hỏi ôn tập: 485

Chương 14      Ghép nối với cơ cấu chấp hành. 486

14.1.     Rơle và Bộ cách ly quang. 486

14.1.1. Rơ-le điện cơ. 486

14.1.2. Rơ-le trạng thái rắn. 489

14.1.3. Chuyển mạch lưỡi gà. 490

14.1.4. Bộ cách ly quang. 491

14.2.     Ghép nối với mô-tơ bước. 493

14.2.1. Động cơ bước. 493

14.2.2. Điều khiển động cơ bước qua bộ cách ly quang. 500

14.3.     Ghép nối với động cơ DC và điều chế độ rộng xung PWM.. 502

14.3.1. Động cơ DC.. 502

14.3.2. Điều chế độ rộng xung (PWM) 509

14.3.3. Điều khiển động cơ DC với bộ cách ly quang. 510

14.4.     Lập trình điều chế độ rộng xung PWM với vi điều khiển ARM KL46Z  511

14.4.1. Nguồn xung nhịp cho mô-đun PWM… 511

14.4.2. PWM được căn chỉnh theo sườn. 515

14.4.3. Điều chế PWM được căn chỉnh trung tâm.. 524

14.4.4. Chế độ căn theo sườn so với chế độ căn giữa. 528

14.4.5. Tạo dải chết (Dead-Band) 529

Câu hỏi ôn tập. 531

Chương 15      Hệ điều hành thời gian thực. 532

15.1.     Các chức năng chính của một hệ điều hành đa năng. 533

15.1.1. Quản lý tiến trình. 534

15.1.2. Quản lý bộ nhớ. 536

15.1.3. Quản lý ngắt 539

15.1.4. Đa nhiệm.. 540

15.1.5. Quản lý hệ thống tệp. 541

15.1.6. Quản lý I/O.. 542

15.2.     Các đặc trưng của nhân RTOS. 543

15.2.1. Đồng hồ và bộ đếm thời gian. 545

15.2.2. Lập lịch ưu tiên. 546

15.2.3. Truyền thông giữa các nhiệm vụ và chia sẻ tài nguyên. 547

15.2.4. Hoạt động I/O không đồng bộ. 549

15.2.5. Khóa bộ nhớ. 550

15.3.     Hệ điều hành CMSIS-RTOS RTX.. 551

15.3.1. Khởi động RTOS. 553

15.3.2. Tạo các luồng. 555

15.4.     Điều khiển đèn LED bằng hệ điều hành CMIS-RTOS RTX.. 557

15.4.1. Thiết lập dự án. 557

15.4.2. Tùy chỉnh nhân CMSIS-RTOS RTX.. 559

15.4.3. Tạo các tệp mã nguồn. 560

Phụ Lục A       Hướng dẫn sử dụng Kit FRDM-KL46Z.. 564

A.1   Cài đặt Driver. 564

A.2   Chạy chương trình demo. 564

A.3   Giao diện OpenSDA.. 566

Phụ Lục B       Cài đặt và sử dụng phần mềm Keil MDK-ARM… 571

B.1   Cài đặt phần mềm Keil MDK-ARM… 571

B.2   Tạo project với Keil MDK-ARM… 572

B.3   Biên dịch và nạp chương trình vào kit 581

TÀI LIỆU THAM KHẢO.. 586

THIẾT KẾ HỆ THỐNG NHÚNG VỚI DÒNG VI ĐIỀU KHIÊN ARM CORTEX-M_dayhocstem.com

Tải sách

Nguyễn Kiêm Hùng

Hung K. Nguyen studied “Electronic Engineering” in both his bachelor’s and master’s degrees at the Vietnam National University, Hanoi, Vietnam. He received the bachelor’s degree in 2003. After receiving his bachelor’s degree, He worked as an internship in the Research Center of Electronics and Telecommunications. In 2006, He received the master’s degree in electronic engineering from VNU University of Engineering and Technology (VNU-UET). Before pursuing his Ph.D’s degree, He worked as a researcher at the Laboratory for Smart Integrated Systems in VNU University of Engineering and Technology for two years. In 2008, He went to Southeast University, Nanjing, China to get his Ph.D degree. He received the Ph.D. degree in Microelectronics and Solid State Electronics from Southeast University in 2013. After got his Ph.D’s degree, He returned to VNU University of Engineering and Technology to continue his research in VLSI design. He works currently as an assistant professor and senior researcher at VNU Key Laboratory for Smart Integrated Systems. His research interests mainly include multimedia processing, reconfigurable computing, and SoC designs.

Trả lời