NGHIÊN CỨU THIẾT KẾ GIAO TIẾP MẠNG KHÔNG DÂY CHUẨN 802.11n VỚI CHIP ARMSoC XỬ LÝ TỐC ĐỘ CAO 1GHz
Trang 1BÁO CÁO THỰC TẬP KỸ THUẬT
ĐỀ TÀI:
NGHIÊN CỨU THIẾT KẾ GIAO TIẾP MẠNG
KHÔNG DÂY CHUẨN 802.11n VỚI CHIP
ARM/SoC XỬ LÝ TỐC ĐỘ CAO 1GHz
GVHD : TS Nguyễn Hoàng Dũng
Trường Đại Học Bách Khoa Hà Nội
Viện Điện Tử - Viễn Thông
Trang 2• Giới thiệu SPI
• Kết nối module wifi qua chuẩn SPI
Chương 4: Giao
tiếp SPI trong ARM
Trang 3Chương 1:
Tổng quan
về IEEE 802.11
IEEE
802.11
n
Kiến trúc
Đặc điểm
Ưu - Nhượ c
Lịch sử
Trang 4Chuẩn 802.11b ( 2.4GHz) và 802.11a ( 5.8GHz) được phê duyệt.
Trang 51.1 Tổng quan IEEE 802.11
1.1.2 Kiến trúc
Chuẩn 802.11 cũng như các chuẩn khác trong họ IEEE 802,
nó tập trung vào 2 tầng thấp nhất trong mô hình OSI– là
tầng vật lý (physical) và
tầng liên kết dữ liệu (datalink)
Do đó, tất cả hệ thống mạng theo chuẩn 802 đều có 2
thành phần chính
là MAC (Media Access Control)
và PHY (Physical) MAC là một
tập hợp các luật định nghĩa việc truy xuất và gửi dữ liệu, còn chi tiết của việc truyền dẫn và thu nhận dữ liệu là
nhiệm vụ của PHY.
Trang 61.1.3 Đặc điểm kỹ thuật
Trang 7- Vùng phủ sóng của IEEE 802.11cao hơn HIPERLAN nhưng cũng chỉ hạn chế ở tầm vài chục đến vài trăm mét.
Trang 8802.11n là 1 chuẩn Wifi thế hệ mới cho các mạng diện rộng không dây Thiết bị xây dựng để đặc tả kĩ thuật 802.11n sẽ cung cấp mức hiệu suất cao hơn đáng kể so với các thế hệ trước là 802.11a,802.11b,802.11g.
1.2 IEEE 802.11n
1.2.1 Chuẩn 802.11n là gì
Trang 9quả Theo đặc tả kỹ thuật,chuẩn 802.11n có tốc độ lý
thuyết lên đến 300Mbps(cao hơn nhiều lần chuẩn 802.11g)
và vùng phủ sóng rộng khoảng 250m( cao hơn chuẩn
802.11g hơn 2 lần).
Trang 10OFDM tốt hơn Hỗ trợ băng thông rộng hơn và tốc độ mã hóa cao hơn để
Đa phân chia
theo không
gian
Cải tiến hiệu suất bằng cách phân chia dữ liệu thành nhiều chuỗi phát đến nhiều anten Tùy chọn đến tối đa 4 chuỗi dữ liệu
Diversity Khai thác sự có mặt của nhiều anten để cải tiến tầm phủ sóng và độ tin cậy Hình thức này được thực thi khi số
lượng anten ở đầu thu cao hơn số lượng anten ở đầu phát
Tùy chọn đến tối đa
40MHz Tăng tốc độ gấp đôi bằng cách tăng độ rộng băng thông từ 20MHz lên 40MHz Tùy chọn
Sự kết hợp Cải tiến hiệu suất bằng cách cho phép nhiều gói dữ liệu
phát tăng tốc giữa sự truyền thông lên cao Quy địnhGiảm Inter-
Trang 11SimpleLink CC3000 được cung cấp như là 1 module nhằm giảm thời gian phát triển,chi phí sản xuất,tiết kiệm kích thước board Ngoài ra nó được cung cấp là 1 nền tảng hoàn chỉnh gồm các driver,ứng dụng mẫu v.v
CC3000 là 1 bộ xử lí mạng không dây độc lập giúp đơn giản hóa việc kết nối Internet dùng công nghệ Wifi.Nó giúp giảm các phần mềm của MCU, thích hợp cho các ứng dụng nhúng sử dụng MCU low-cost/low-power.
CHƯƠNG 2: MODULE WIFI CC3000 CỦA TI
2.1 Giới thiệu
Trang 12• Công suất TX:+18.0 dBm ở 11 Mbps,CCK
• Độ nhạy RX:-
88dBm,8%
PER,11 Mbps
Hoạt động với MCU chi phí thấp với bộ nhớ nhỏ gọn:kích thước code nhỏ cần cho MCU
• Kích thước nhỏ:16.3
mm x 13.5
mm x 2 mm
• Môi trường làm việc:-20°C-70°C
CHƯƠNG 2: MODULE WIFI CC3000 CỦA TI
2.2 Tính Năng
Trang 13• Như vậy CC3000 là một module thu phát wifi gồm sẵn
firmware hỗ trợ cho việc cấu hình wifi theo các chức năng bảo mật WEP,WPA/WPA2 nên sẽ không cần viết lại code trong con
vi điều khiển, do đó tiết kiệm tài nguyên cho MCU Tầm xa
theo lý thuyết là khoảng 2km.
• Giao tiếp giữa CC3000 với vi điều khiển thông qua chuẩn SPI.
Trang 15Sơ đồ chân module CC3000
CHƯƠNG 2: MODULE WIFI CC3000 CỦA TI 2.4 Module outline
Trang 17Bảng mô tả chân:
Trang 18CHƯƠNG 3:
TỔNG QUAN KIẾN TRÚC ARM
3.1 Lịch
sử phát triển
3.2 Cấu trúc cơ bản của ARM
3.3 Mô hình kiến trúc
3.4 Chế độ hoạt động của ARM
Trang 20Trong ARM có một số tính chất mới như sau:
- Hầu hết tất cả các lệnh đều cho phép thực thi có điều kiện, điều này làm giảm việc phải viết các tiêu đề rẽ nhánh cũng như bù cho việc không có một
- Có các kiểu định địa chỉ theo chỉ số rất mạnh
- Có hệ thống con thực hiện ngắt hai mức ưu tiên đơn giản nhưng rất nhanh, kèm theo cho phép chuyển từng nhóm thanh ghi
3.2 Cấu trúc cơ bản của
Trang 21- Dữ liệu đi vào lõi xử lý thông qua các bus dữ liệu.
- Các bộ giải mã sẽ định hướng dịch chuyển trước khi chúng được thực thi Mỗi một chỉ lệnh thực hiện
thuộc về một tập lệnh riêng biệt.
- Tất cả dữ liệu thao tác nằm trong các thanh ghi, các thanh ghi có thể
là toán hạng nguồn, toán hạng đích, con trỏ bộ nhớ Các dữ liệu 8 bit, 16 bit đều được mở rộng thành
32 bit trước khi đưa vào thanh ghi.
- Tập lệnh ARM nằm trong hai nguồn thanh ghi Rn và Rm, và kết quả được trả về thanh ghi đích Rd
3.3 Mô hình kiến trúc
Trang 22- Khối số học và logic (ALU: Arithmetic Logic Unit) hay bộ tích lũy nhân (MAC: Multiply-Accumulate Unit) lấy các giá trị thanh ghi Rn và Rm từ bus A và B, và tính toán kết quả (bộ tích lũy nhân có thể thực hiện phép nhân giữa hai thanh ghi và cộng kết quả với một thanh ghi khác)
- Thanh ghi Rm còn có thể được xử lý
trước trong shifter (bộ dịch chuyển) trước khi nó đi vào ALU Shifter và ALU
có thể phối hợp với nhau để tính toán các biểu thức và địa chỉ
- Giao tiếp với bộ nhớ thông qua các lệnh load-store, các lệnh load và store sử
dụng ALU để tính toán địa chỉ được lưu trong các thanh ghi địa chỉ, ngoài ra tập lệnh này còn sử dụng ALU để tạo ra địa chỉ được tổ chức trên địa chỉ thanh ghi
và truyền đi trên các bus địa chỉ
Trang 23- IRQ : Được sử dụng cho việc xử lý các ngắt mục đích chung
- Supervisor : Chế độ bảo vệ dùng cho hệ điều hành
- System : Chế độ ưu tiên, dùng cho hệ điều hành
- Undefined : Dùng cho trường hợp mã lệnh không hợp lệ
- User : Chế độ người dùng có mức ưu tiên thấp.
ARM có bẩy chế độ hoạt động, chế độ người dùng là chế độ cơ
bản và ít đặc quyền nhất, khi đó CPU thực hiện mã hóa dữ liệu cho người dùng.
3.4 Chế độ hoạt động của ARM
Trang 24Tất cả lệnh của ARM đều là 32 bit:
Có cấu trúc dạng load-store
Cấu trúc lệnh định dạng ba địa chỉ
Mỗi một lệnh thực thi một điều kiện
Có cả lệnh load-store nhiều thanh ghi đồng thời
Có khả năng dịch bit kết hợp với thực thi lệnh ALU trong chỉ một chu kỳ máy
Chế độ Thumb code nén lệnh 32 bit thành
16 bit
3.5 Cấu trúc tập lệnh của ARM
Trang 2525
Trang 263.6 CORTEX A8 335x
3.6.1 Giới thiệu
Trang 27Bộ nhớ cache L1 32kb và bộ nhớ cache data 32kb
Bộ nhớ cache L2 256kb với mã sửa lỗi ECC ( Error Corecting Code)
Bộ nhớ ROM trên chip 176kb
Bộ nhớ RAM chuyên dụng 64kb
Mô phỏng và gỡ lỗi – JTAG
Bộ điều khiển ngắt (lên đến 128 yêu cầu ngắt )
Trang 282 Bộ nhớ trên chip Bộ nhớ RAM đa năng
OCMC(On-Chip Memory Controller) 64kb
Tiếp cận tất cả Master
3 Giao tiếp bộ nhớ ngoài Bộ điều khiển
mDDR(LPDDR), DDR2,DDR3,DDR3LĐiều khiển bộ nhớ đa năng ( GPMC-General Purpose Memory
Controller)
- Ghép nối bộ nhớ không đồng bộ 8bit và 16bit linh hoạt với 7 CS (NAND, NOR, Muxed-NOR, SRAM)
- Sử dụng mã BCH hỗ trợ 4,8,16 bit ECC
Trang 294 Hệ thống chương trình thời
gian thực
Hỗ trợ các giao thức như:
EtherCAT®,PROFIBUS, PROFINET, EtherNet/IP™
Hai đơn vị chương trình thời gian thực ( PRUs):
- Bộ xử lý 32bit nạp/lưu trữ
có khả năng hoạt động ở 200MHz
- Bộ nhân 32bit chu kỳ đơn với bộ đếm 64bit
- Tăng cường module GPIO
và các chốt song song dựa trên tín hiệu bên ngoài
3 bank thanh ghi 120 byte được truy cập bởi PRU
Module điều khiển ngắt ( INTC) xử lý các sự kiện ngắt đầu vào
Bus liên kết cục bộ sử dụng để kết nối các Master trong và ngoài với PRU bên trong
Trang 304 Module năng lượng, Reset,điều khiển Clock (PRCM)
• Kiểm soát xuất/nhập dữ liệu ở chế độ Stand-by và Deep-Sleep
• Clock :
• Tần số Oscillator mức cao được tích hợp từ 15-35MHz dùng để tạo ra đồng
hồ tham chiếu cho các hệ thống khác nhau và các đồng hồ ngoại vi
• Hỗ trợ đồng hồ riêng kích hoạt và ngắt kích hoạt điều khiển hệ thống phụ
và các thiết bị ngoại vi góp phần làm giảm tiêu thụ điện năng
5 Đồng hồ thời gian thực ( RTC – Real-Time Clock )
• Tần số Oscillator nội 32.768khz , logic RTC và LDO nội 1.1V
• Chương trình cảnh báo (Alarm) tạo ra các vecto ngắt nội đến PRCM ( cho Wakeup) hoặc Cortex A8 ( cho các thông báo khi có tác động )
6 Thiết bị nhận dạng
7 Gỡ lỗi giao diện
• Thiết bị quét đường biên
• Hỗ trợ chuẩn IEEE 1500
8 DMA
Trang 319 Thiết bị ngoại vi
* Hai cổng USB 2.0 tốc độ cao với PHY tích hợp
* Hai cổng CAN( Controller Area Network)
* Hai cổng audio đa kênh nối tiếp ( McASPs)
• Truyền/nhận xung clock 50mhz
• Bốn pin data nối tiếp cho mỗi port McASP với đồng hồ RX và TX độc lập
• Bộ đệm FIFO cho truyền/nhận ( 256byte)
* Sáu cổng UART
• Hỗ trợ các chế độ IrDA và CIR
• Hỗ trợ điều khiển luồng RTS và CTS
* Hai chuẩn truyền thông nối tiếp McSPI Master và Slave
* Ba cổng MMC,SD,SDIO
• Tốc độ truyền dữ liệu 48Mhz
• Tuân theo các thông số kỹ thuật MMC4.3, SD, SDIO 2.0
Trang 32* Ba chuẩn I2C Master và Slave
* Bốn bank pin I/O đa năng (GPIO)
• Bộ điều khiển tích hợp giao tiếp LCD hiển thị driver
• Ba module 32bit eCAP
* Ba module PWM độ phân giải cao
Trang 33SPI (Serial Peripheral Interface : giao diện ngoại vi nối tiếp) là một chuẩn
truyền thông nối tiếp tốc độ cao do hãng Motorola đề xuất SPI truyền dữ liệu
ở chế độ song công ( full duplex ) và đôi khi thì SPI đc gọi là giao diện 4 dây ( four wire)
Giao thức SPI cung cấp một giao thức nối tiếp đơn giản giữa MCU và thiết bị ngoại vi Giống với các Bus nối tiếp khác như I2C, CAN hoặc USB , chuẩn giao tiếp SPI ngày càng được sử dụng rộng rãi trong lĩnh vực điện tử, đặc biệt là trong giao tiếp trao đổi dữ liệu với các ngoại vi
Giao thức SPI được tích hợp trong một số loại thiết bị như:
+ Các bộ chuyển đổi (ADC và DAC)
+ Các loại bộ nhớ (EEPROM và FLASH)
+ Các loại IC thời gian thực
+ Các loại cảm biến (nhiệt độ, áp suất…)
+ và một số loại khác như: bộ trộn tín hiệu, LCD, Graphic LCD…
Trong vi điều khiển ARM, khối SPI được tích hợp sẵn bên trong và nằm trên bus truyền dữ liệu ngoại vi tối ưu để tăng hiệu suất truyền dữ liệu và tối ưu khả năng tiêu thụ công suất
CHƯƠNG 4: GIAO TIẾP SPI TRONG ARM
4.1 Giới thiệu SPI
Trang 34SPI sử dụng phương thức truyền: Nối tiếp – Đồng bộ – Song công
Nối tiếp: truyền một bit dữ liệu trên mỗi nhịp truyền
Đồng bộ: có xung nhịp đồng bộ quá trình truyền
Song công: cho phép gửi, nhận đồng thời
Mô tả chân trong SPI :
• MISO: (Master In Slave Out) truyền dữ liệu từ thiết bị bị động sang chủ động
• MOSI: (Master Out Slave In) truyền dữ liệu từ thiết bị chủ động vào bị động
• SCLK: ( Serial Clock ) truyền tín hiệu đồng hồ cho thiết bị bị động
• SS: (Slave Select) chọn vi mạch bên bị động
Trang 35• Các cấu hình ghép nối cơ bản trong giao tiếp SPI
Mô tả chân trong SPI :
• MISO: (Master In Slave Out) truyền dữ liệu từ thiết bị bị động sang chủ động
• MOSI: (Master Out Slave In) truyền dữ liệu từ thiết bị chủ động vào bị động
• SCLK: ( Serial Clock ) truyền tín hiệu đồng hồ cho thiết bị
bị động
• SS: (Slave Select) chọn vi mạch bên bị động
Trang 36- Mỗi chip Master hay Slave có một thanh ghi dữ liệu 8 bits
- Cứ mỗi xung nhịp do Master tạo ra trên đường giữ nhịp SCK;
- Một bit trong thanh ghi dữ liệu của Master được truyền qua Slave trên đường MOSI, đồng thời một bit trong thanh ghi dữ liệu của chip Slave cũng được truyền qua Master trên đường MISO
- Do 2 gói dữ liệu trên 2 chip được gởi qua lại đồng thời nên quá trình truyền dữ liệu này được gọi là “song công”.
Trang 37SPI Half – Duplex Transmission SPI Full – Duplex Transmission
Trang 38- Ký hiệu : MISO là SDO ; MOSI là SDI ; SS là CS
- Trong cách kết nối này, tín hiệu SCK và SDO từ Master được cung cấp đến từng Slave Đường tín hiệu SDO của các Slave nối chung lại với nhau
và truyền về Master Lúc này, Master sẽ lựa chọn Chip Slave nào để trao đổi dữ liệu thông qua các chân SS riêng lẻ
Có 2 cách kết nối Master – Slave
• Master – Slave kết nối độc lập
Trang 39A và truyền đến B Tương tự, khi byte thứ ba truyền vào A, byte thứ hai sẽ
bị dịch sang B và byte đầu tiên sẽ bị dịch sang C Nếu Master muốn đọc lại
dữ liệu trong Slave A, nó phải truyền lại chuỗi 3 Bytes dữ liệu (giả) lần nữa Khi đó dữ liệu trong A sẽ chuyển sang B rồi chuyển sang C, sau đó về
Master Suốt quá trình sử lý, Master luôn nhận được Byte dữ liệu từ Slave B
• Cách kết nối theo kiểu Daisy-Chained
Trang 40Bảng mô tả chân
CHƯƠNG 4: GIAO TIẾP SPI TRONG ARM 4.2 Kết nối module wifi qua chuẩn SPI
Trang 41• SPI Timing
Trang 42Ký hiệu Thông số Min Max Đơn vị
T clk
Xung thời gian
62.5
37.5
ns
t is RX thiết lập thời gian
5
Trang 43KẾT LUẬN
Trên đây là những kiến thức khái quát về giao tiếp mạng không dây cũng như kiến trúc tổng quan về
dòng vi điều khiển ARM mà nhóm sinh viên chúng
em tìm hiểu được trong tuần qua Trong quá trình
tìm tòi,nghiên cứu có thể còn nhiều sai sót,chúng em mong nhận được sự góp ý của thầy để báo cáo được hoàn thiện hơn.
Trang 44TÀI LIỆU THAM KHẢO
[1] www.google.com [2] www.ti.com
…
Trang 45
45