Đề tài Tổng quan các giao diện trong máy tính pc

Tài liệu Đề tài Tổng quan các giao diện trong máy tính pc: MỤC LỤC LỜI NÓI ĐẦU. Chương I. TỔNG QUAN CÁC GIAO DIỆN TRONG MÁY TÍNH PC..... 4 1.1. Giao diện tốc độ thấp. ......................................................................... 4 1.1.1. Cổng giao tiếp song song...................................................................... 4 1.1.2. Cổng giao tiếp nối tiếp.......................................................................... 4 1.2.3. Giao tiếp theo chuẩn ISA...................................................................... 5 1.2.4. Giao tiếp theo chuẩn EISA ................................................................... 5 1.2. Giao diện tốc độ cao ............................................................................ 7 1.2.1. Giao diện PCI........................................................................................ 7 1.2.2. Giao diện AGP.................................................................................... 10 1.2.3. Giao diện USB .................................

pdf67 trang | Chia sẻ: hunglv | Lượt xem: 1011 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Tổng quan các giao diện trong máy tính pc, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC LỜI NÓI ĐẦU. Chương I. TỔNG QUAN CÁC GIAO DIỆN TRONG MÁY TÍNH PC..... 4 1.1. Giao diện tốc độ thấp. ......................................................................... 4 1.1.1. Cổng giao tiếp song song...................................................................... 4 1.1.2. Cổng giao tiếp nối tiếp.......................................................................... 4 1.2.3. Giao tiếp theo chuẩn ISA...................................................................... 5 1.2.4. Giao tiếp theo chuẩn EISA ................................................................... 5 1.2. Giao diện tốc độ cao ............................................................................ 7 1.2.1. Giao diện PCI........................................................................................ 7 1.2.2. Giao diện AGP.................................................................................... 10 1.2.3. Giao diện USB .................................................................................... 11 1.3. Chuẩn giao diện Peripheral Component Interconnect - PCI....... 13 1.3.1. Mô tả chân tín hiệu trên Slot PCI ....................................................... 13 1.3.2. Các lệnh Bus. ...................................................................................... 18 1.3.3. Giao thức cơ bản của Bus PCI. ........................................................... 19 1.3.4. Định địa chỉ trên Bus PCI. .................................................................. 19 1.2.5. Tổ chức không gian cấu hình bus PCI. ............................................... 20 1.2.6. Các thao tác cơ bản trên bus PCI. ....................................................... 25 1.2.7. Sự kết thúc quá trình trao đổi dữ liệu. ................................................ 28 1.2.8. Đồ hình trạng thái bus PCI.................................................................. 34 Chương II. CHUẨN GIAO DIỆN USB.................................................. 36 2.1. Giao diện USB. .................................................................................. 36 2.1.1. Bộ kết nối USB ................................................................................... 37 2.1.2. Đặc tính điện của cổng USB............................................................... 38 2.1.3. Giao thức truyền USB......................................................................... 39 2.1.4. Cấu trúc gói USB. ............................................................................... 40 2.1.5. Các kiểu gói USB................................................................................ 41 2.1.6. Các kiểu truyền USB .......................................................................... 42 2.1.7. Điều khiển truyền dữ liệu ................................................................... 43 2.2. Hệ thống USB 2.0. ............................................................................. 45 4 CHƯƠNG III. THIẾT KẾ GIAO DIỆN USB (PC) SỬ DỤNG CHIP FT245BM. ...................................................................................................... 46 3.1. Giới thiệu chung. ............................................................................... 46 3.2. Những ưu điểm nổi bật ..................................................................... 46 3.3. Sơ đồ khối .......................................................................................... 50 3.4. Sơ đồ chân tín hiệu............................................................................ 53 3.5. Gi¶n ®å thêi gian – Chu kú ®äc FIFO............................................. 58 3.6. Gi¶n ®å thêi gian – Chu kú ghi FIFO. ........................................... 58 3.7. Các mạch sử dụng chip FT245BM. ................................................ 59 3.7.1. Mạch tạo dao động.............................................................................. 59 3.7.2. CÊu h×nh với EEPROM....................................................................... 60 3.7.3. Cấp nguồn từ Bus USB....................................................................... 62 3.7.4. Kết cấu tự cấp nguồn USB.................................................................. 63 3.7.5. Mạch tạo nguồn cho Bus với mức lôgic 3.3v / nguồn nuôi................ 65 3.7.6. Mạch cấp nguồn (≤100mA) với nguồn điều khiển............................. 66 3.7.7. CÊu h×nh với bộ vi điều khiển (MCU) ................................................ 68 KẾT LUẬN. TÀI LIỆU THAM KHẢO. 5 CHƯƠNG I. TỔNG QUAN CÁC GIAO DIỆN TRONG MÁY TÍNH PC 1.1. Giao diện tốc độ thấp. 1.1.1. Cổng giao tiếp song song. Cổng song song là cổng thông dụng nhất cho các ứng dụng văn phòng. Nó có 4 đường tín hiệu điều khiển (tín hiệu ra), 5 đường tín hiệu trạng thái (tín hiệu ra) và 8 đường tín hiệu dữ liệu đều tương thích mức TTL, tương thích với 3 nhóm đường tín hiệu trên là 3 thanh ghi: thanh ghi điều khiển, thanh ghi trạng thái và thanh ghi dữ liệu. Địa chỉ cơ sở của cổng song song là 378H. Thanh ghi dữ liệu có địa chỉ 378H, thanh ghi trạng thái có địa chỉ 379H và thanh ghi điều khiển có địa chỉ 37AH. 1.1.2. Cổng giao tiếp nối tiếp. So với cổng song song thì cổng nối tiếp được dùng ít hơn. Trong hầu hết các trường hợp, bất kì thiết bị nào nối vào cổng nói tiếp cũng cần phải chuyển dữ liệu nối tiếp thành song song thì mới dùng được và có thể dùng UART để thực hiện việc này. Vì thế cần phải có nhiều thanh ghi điều khiển hơn kiểu truyền song song. Tuy nhiên, truyền nối tiếp có ưu điểm mà truyền song song không có như : • Cáp truyền nối tiếp dài hơn cáp truyền song song. Vì cổng nối tiếp truyền mức ‘1’ với điện áp từ –3V đến mức –25V và mức ‘0’ với điện áp từ 3V đến 25V trong khi cổng truyền song song truyền với mức TTL. • Cáp truyền không cần nhiều sợi như cáp truyền song song; • Khả năng chống nhiễu cao. 6 IRQs Audio Codec Modem Codec AC’97 Link IDE Firmware Hub PCI Bus ISA Slots INTR USB Ports ISA Bridge (Optional) 8259 Interrrupt Controller USB Controller Com 1 Com 2 Super IO I/O Controller Hub (ICH) PCI Slots Local Video Memory LPC DRAM Memory Controller Hub (MCH) Monitor A G P CPU Hình 1.1: Sơ đồ ghép nối trong máy tính 1.1.3. Giao tiếp theo chuẩn ISA. Chuẩn ISA là giao diện phổ biến nhất trong thế giới của máy vi tính. Chuẩn ISA nguyên bản truyền 8 bit dữ liệu và chay với tần số 4.77MHz (tương ứng với bộ xử lý 8 bit 8088). Năm 1984 thế hệ máy tính IBM AT ra đời dùng bộ vi xử lý 16 bit 80286 do đó bus ISA cũng được mở rộng thành bus 16 bit bàng cách ghép thêm một 7 rãnh phụ nằm thẳng hàng với 8 bit cũ. Trên bus ISA có tập hợp các đường địa chỉ, dữ liệu và điều khiển cho phép thiết kế Card giao tiếp 8/16 bit có địa chỉ 300H đến 31FH cắm trên rãnh này. Sau này mặc dù các bộ vi xử lý có tốc độ cao hơn, kênh dữ liệu lớn hơn nhưng chuẩn ISA còn tồn tại để tương thích với những thiết bị ngoại vi cũ nối với máy tính qua giao diện ISA. Ngày nay rãnh cắm ISA không còn phù hợp và hầu như không xuất hiện trên bảng mạch chủ của máy tính thế hệ mới. Và thiết bị ngoại vi nói chung thường sử dụng giao diện tốc độ cao USB hoặc PCI. 1.1.4. Giao tiếp theo chuẩn EISA. Chuẩn EISA là sự mở rộng của chuẩn ISA, hoàn toàn tương thích với chuẩn ISA (Card thiết kế theo chuẩn ISA chạy được trên rãnh cắm EISA). Chuẩn EISA có tính năng tiên tiến hơn như: - Độ rộng kênh dữ liệu 32 bit; - Card thiết kế theo chuẩn EISA có hiệu quả làm việc cao. - Tự đông cài đặt cấu hình cho Card tương tự như chuẩn Plug and Play. Tuy nhiên chuẩn EISA không phải là thông dụng vì thiết bị theo chuẩn này có giá thành đắt hơn và đặc biệt tốc độ (8MHz) của chuẩn EISA chậm hơn nhiều so với các chuẩn giao tiếp bus cục bộ sau này được nhiều người ưu chuộng. Ngoài ra còn một số chuẩn giao diện nữa như: MCA (Micro Channel Architecture bus) do IBM phát triển với sự bố trí chân và các đặc tính tín hiệu hoàn toàn khác với ISA, EISA nhừm làm việc với các bộ xử lý 80386. Một số đặc tính có thể kể đến là: các đường dữ liệu và địa chỉ 32 bit có thể chuyển dữ liệu với card mở rộng dạng 8/16/32 bit. Các chuyển mạch DIP và chân cắm được thay thế bằng cách sử dụng các thanh ghi điều khiển bằng phần mềm để thiết lập cấu hình cho các card mở rộng. trên lý thuyết MCA có thể làm việc 8 với tần số 30MHz, các chân tín hiệu được xen với các chân đất và chân nguồn làm giảm nhiễu xuyên âm, tổn hao, có mạch phân phối bus cho phép tổ chức thiết bị chủ đa bus…tuy vậy sự độc quyền của IBM trong việc sử dụng MCA đối với các hãng sản xuất thiết bị chuẩn này không được sử dụng rộng rãi. Song song với sự ra đời các bộ vi xử lý 32 bit hoạt động với tốc độ cao, các phần mềm đồ họa ra đời đã dẫn tới việc CPU phải xử lý và truyền đi một lượng dữ liệu đồ họa lớn qua video card đến màn hình. Điều này làm cho các bus nêu trên trở thành nguyên nhân gây cản trở, làm chậm tốc độ hệ thống vì chúng làm việc với tốc độ thấp, băng thông hẹp. Những yêu cầu thực tế đó đã thúc đẩy các phát triển chuyển sang sử dụng bus cục bộ. Mục đích xây dựng bus cục bộ là nhằm truy cập bus hệ thống với tốc độ xấp xỉ tốc độ bộ vi xử lý, cải thiện băng thông, nâng cao độ tin cậy và giảm giá thành nhờ chuẩn hóa. 1.2. Giao diện tốc độ cao. 1.2.1. Giao diện PCI. Bus cục bộ PCI ra đời với mục đích đầu tiên là thiết lập một chuẩn giao tiếp công trong nghiệp có hiệu suất cao, mức tiêu thụ năng lượng thấp. Ngày nay, chuẩn PCI tạo ra bộ mặt mới trong lĩnh vực nối ghép máy tính với thiết bị ngoại vi và quan trọng là nó là chuẩn giao diện mới đáp ứng những nhu cầu của những hệ thống đa nền tảng và đa cấu trúc. Hình 1.2 cho ta các kích thước có thể của bus cục bộ PCI. Thành phần PCI và các Card giao tiếp được xử lý hoàn toàn độc lập với nhau, cho phép một quá trình trao đổi dữ liệu cố định và có thể sử dụng với cấu trúc đa xử lý. Xử lý độc lập cho phép bú cục bộ PCI tối ưu hóa với các chức năng vào/ra, các hệ thống nhớ, các thiết bị ngoại vi có hiệu suất cao như hình ảnh động, LAN, SCSI, FDDI, ổ cứng…nâng cao hình ảnh và hiển thị đa phương tiện (đồ họa 3 chiều). Phần đuôi mở rộng của bus địa chỉ và dữ liệu 9 32 bit được làm tăng gấp đôi độ rộng băng thông có tác động hồi tiếp và chuyển tiếp phù hợp với những thiết bị ngoại vi theo chuẩn PCI. Chuẩn của bus cục bộ PCI có tác dụng bảo vệ đối với những ứng dụng của PCI cơ bản. Thanh ghi cấu hình được dụng riêng cho các thành phần điều khiển PCI và card bổ sung. Một hệ thống phần mềm cấu hình tự động rất dễ cho sử dụng bởi việc định cấu hình tự động được thực hiện tại thời điểm khởi động hệ thống. Các dặc tính của bus cục bộ PCI là: • Tốc độ 33MHz (phiên bản đầu). • Đường dữ liệu 32 bit và 64 bit mở rộng. • Hỗ trợ truyền dữ liệu dạng khối. • Hỗ trợ việc làm chủ bus, cho phép thực hiện đa xử lý mà bất kì bộ xử lý nào cũng có thể trở thành thiết bị chủ và nắm quyền điều khiển bus. • Hỗ trợ card mở rộng 3.3V hoặc 5V, cho phép chuyển dễ dàng từ hệ thống 5V sang 3.3V bằng việc sử dụng các lẫy điện áp. • Có tính tương thích với các chuẩn cũ ISA, EISA…do sử dụng cầu nối bus (PCI-to-PCI Bridge). Bus PCI độc lập với bộ vi xử lý, nó là bus tầng dưới, không trực tiếp nối vào bus hệ thống, giữa bộ vi xử lý và bus PCI là thiết bị điều khiển PCI- một vi mạch có nhiệm vụ đồng bộ các tín hiệu hệ thống và tín hiệu bus, làm cho chúng hiểu nhau. • Cung cấp khả năng tạo cấu hình tự động, người dùng không cần đặt lại chuyển mạch DIP hoặc chân cắm và lựa chọn ngắt, phần mềm đặt cấu hình sẽ tự động chọn các địa chỉ và các ngắt chưa sử dụng để tránh xung đột. • Trên slot PCI giữa hai chân tín hiệu thường có chân Vcc hoặc Gnd để ghim nhiễu xuyên âm và bức xạ vô tuyến; • Thực hiện các ngắt mức khởi phát và hỗ trợ việc chia sẻ ngắt. 10 Bridge Memory Controller Cache Dram Audio PCI local bus #0 Graphics Other I/O Functions SCSI PCI local bus #1 LAN PCI-to-PCI Bridge Motion Video Processor Hình 1.2: Sơ đồ khối hệ thống PCI Ở sơ đồ trên ta thấy bộ vi xử lý, cache, bộ nhớ được nối tới bus PCI qua một cầu PCI, nó cho phép bộ vi xử lý truy cập trực tiếp tới các thiết bị truyền theo chuẩn PCI khác như bộ nhớ, không gian địa chỉ I/O. Đồng thời cầu PCI tạo ra đường truyền băng thông rộng và có nhiều tính năng khác nhau. Bus PCI cho phép ghép thêm 4 card trên các Slot PCI để kết nối tới thiết bị ngoại vi. Phương thức trao đổi dữ liệu chủ yếu của bus PCI là truyền khối (Bus PCI cho phép truyền khối đối với cả bộ nhớ và không gian địa chỉ cổng vào ra). Với phương thức này thì trên các đường tín hiệu ADxx bắt đầu là thông tin địa chỉ tiếp theo là một hoặc nhiều các nhịp dữ liệu (32/64 bit) trong khối đó. 11 1.2.2. Giao diện AGP. Cổng tăng tốc độ đồ họa là cổng tốc độ cao cho phép hiển thị đồ họa 3 chiều. Nó được dành riêng cho card kết nối thiết bị hiển thị. Giao diện AGP dưa trên tập hợp các thao tác mở rộng và cải tiến của bus PCI. Nói chung biến đổi 3 chiều đòi hỏi rất lớn về dung lượng và dải thông bộ nhớ, khi phần mềm và phần cứng trở nên càng phức tạp thì yêu cầu này càng tăng nhanh, hai đòi hỏi này sẽ làm tăng chi phí sản xuất. Việc khống chế giá thành mà vẫn cải thiện được tính năng là mục đích ra đời của AGP. Bằng cách cải tiến độ lớn băng thông giữa bộ tăng tốc đồ họa và bộ nhớ hệ thống một số cấu trúc dữ liệu biến đổi 3 chiều có thể chuyển vào bộ nhớ trung tâm một cách hữu hiệu và giảm áp lực về chi phí bộ nhớ đồ họa cục bộ. Dữ liệu đồ họa (Texture) là cấu trúc đầu tiên được dịch chuyển vào bộ nhớ hệ thống vì 4 lý do sau: + Texture chỉ để đọc và vì vậy nó không cần có việc định thứ tự truy cập đặc biệt và các vấn đề kèm theo. + Dịch chuyển Texture cân bằng tải băng thông giữa bộ nhớ hệ thống và bộ nhớ đồ họa cục bộ, vì bộ nhớ Cache có đòi hỏi về băng thông bộ nhớ thấp hơn nhiều so với bộ biến đổi 3 chiều. + Dung lượng Texture phụ thuộc vào chất lượng ứng dụng chứ không phụ thuộc vào độ phân giải hiển thị và bởi vậy nó là đối tượng chịu áp lực lớn nhất khi tăng và cải thiện chất lượng. + Dữ liệu đồ họa không tồn tại lâu dài, nó thường trú trong bộ nhớ chỉ khi chạy ứng dụng. Bởi vậy phần bộ nhớ để lưu nó được trả về heap bộ nhớ trống khi kết thúc ứng dụng. Việc giảm chi phí bằng cách chuyển dữ liệu đồ họa vào bộ nhớ trung tâm là mục đích chính của AGP, nó được thiết kế để cho tạo quá trình chuyển đổi trơn cho những nhà cung cấp đồ họa dựa trên chuẩn PCI để phát triển các thiết bị có chức năng cao hơn trong tương lai. 12 Chipset Gfx Accel LFB I/O I/O AGP PCI I/O Sys Mem Processor Hình 1.3: Sơ đồ khối mối quan hệ AGP và PCI AGP không thay thế và không hủy bỏ chuẩn PCI trong hệ thống. Cổng tốc độ cao AGP độc lập với bus PCI về mặt vật lý, lôgic và điện. Nó là điểm kết nối bổ xung trong hệ thống như hình trên. Nó dành riêng cho việc sử dụng các thiết bị hiển thị, tất cả các thiết bị vào/ra khác sẽ vẫn ở trên bus PCI. Khe cắm dành cho AGP sử dụng đầu nối mới không tương thích với đầu nối PCI, bảng mạch PCI và AGP không thể hoán đổi cho nhau được. Đặc tính AGP được phát triển bởi hãng Intel, độc lập với PCI của Special Interst Group. Giao diện AGP sử dụng PCI 66Mhz như là thao tác cơ bản với mục đích tối ưu hóa các ứng dụng đồ họa 3 chiều tốc độ cao bằng cách: - Can thiệp sâu vào không gian nhớ. - Phân kênh địa chỉ và dữ liệu trên bus vì thế bus đạt hiệu suất gần 100%. - Với điện áp cung cấp 3.3V cho phép truyền dữ liệu một hoặc hai lần trong một nhịp xung clock 66MHz. Vì thế tốc độ truyền có thể đến 1GBps. 1.2.3. Giao diện USB. USB là một chuẩn truyền dữ liệu cho thiết bị ngoại vi được hãng Intel và Microsoft phát triển. Đây là sự thay thế cho việc có quá nhiều đầu nối và cổng ở mặt sau máy tính, thay vì có quá nhiều đầu nối vào máy tính cho bàn phím, chuột, máy in, modem, thiết bị multimedia, máy ảnh số... Chuẩn USB cho 13 phép tất cả nối vào cổng duy nhất trên bảng mạch máy chủ của máy tính. Chuẩn USB loại trừ nhiều rắc rối trên khi cài đặt thiết bị ngoại vi, chẳng hạn như phải tháo máy để cài đặt card nối ghép, thay đổi các chuyển mạch, khai báo ngắt... Keyboard (Hub) Monitor (Hub) USB Host Controller (Root Hub) Video Frame Buffer Main Memory 16-Bit PC Card CardBus PC Card Mouse Speaker Disk Tape CD ROM CPU Local Bus CPU Memory Bus Host/ PCI Cache/ Bridge Graphics Adapter Card Bus Bridge LAN Adapter SCSI Host Bus Adapter PCI Bus Hình 1.4: Sơ đồ khối mối quan hệ USB và PCI Ở trên cho thấy hình ảnh của hệ thống USB được thực hiện trên nền tảng cơ sở của bus PCI-khối điều khiển chủ USB nằm trên bus PCI. USB được phát triển theo yêu cầu chính sau: • Dễ sử dụng: nối thiết bị mà không cần mở hộp PC, USB sẽ nối ngay thiết bị đó và bổ sung thông tin về thiết bị đó như kiểu loại, số hiệu, nhà sản xuất... Nếu như rút một thiết bị USB ra khỏi PC thì chíp điều khiển 14 giao diện USB sẽ nhận ra và thông báo cho phần mềm điều khiển thiết bị, do đó PC biết thiết bị đó đã được rút ra. • Mở rộng cổng giao tiếp: các thiết bị theo chuẩn USB thường có mức tiêu thụ năng lượng thấp, vì thế nên có nhiều thiết bị tốc độ cao cùng được kết nối qua bus này. Trên bảng mạch chủ máy vi tính chỉ có duy nhất một khối điều khiển cho giao diện này, cho phép đồng thời quản lý 127 thiết bị ngoại vi bằng cách chia sẻ băng thông cho tất cả các thiết bị trên kênh trong cùng một thời điểm. Nó có 4 đường tín hiệu: 2 đường cho nguồn và 2 đường cho truyền dữ liệu. Mỗi khi cắm một thiết bị vào giao diện USB, nó sẽ phát hiện và gán cho một địa chỉ tương thích với chíp điều khiển giao diện USB (trên PC). Đặc tính của USB xác định kết nối và truyền tin giữa hai thành phần cơ bản: khối điều khiển USB và thiết bị USB. Chỉ có một khối điều khiển USB, nó thực hiện các kết hợp phần cứng, chương trình cơ sở hoặc phần mềm. Có hai kiểu thiết bị USB: USB Hub và USB Functions. USB Hub cho phép mở rộng số jack nối USB vào hệ thống còn USB Functions cho phép nối hệ thống với các thiết bị ngoại vi như: bàn phím, chuột… Chuẩn USB hiện có hai phiên bản là USB 1.1 và USB 2.0. Phiên bản USB 1.1 có 2 tốc độ: 12MHz và 1.5MHz, tốc độ 1.5 MHz chậm hơn và ít ảnh hưởng của nhiễu nên giảm chi phí sản xuất. Phiên bản USB 2.0 ngày nay có thể đạt tới tốc độ 480 Mb/s. Qua việc tìm hiểu về giao diện tốc độ cao ta nhận thấy giao diện PCI là cơ sở để xây dựng các chuẩn giao tiếp khác. Vì vậy trước khi tìm hiểu chuẩn giao diện USB ta sẽ nghiên cứu những vấn đề cơ bản nhất của giao diện PCI . 1.3. Chuẩn giao diện Peripheral Component Interconnect - PCI. 1.3.1. Mô tả chân tín hiệu trên Slot PCI. 15 Các chân tín hiệu được phân chia theo nhóm và tổ chức như sau : Arbitration (maslers only) PCI Compliant Device AD[31::0] C/BE[3::0]# Address and Data PAR FRAME# TRDY# IRDY# STOP# DEVSEL# IDSEL# Interface Control PERR# SERR# Error Reporting REQ# GNT# C RSystem AD[63::32] C/BE[7::4]# PAR64 REQ64 ACK64 64-Bit Extension LOCK# SMBCL SMBDAT PME# CLKRUN# Interface Control INTA# INTC# INTB# INTD# Interrupts JTAG + Nhóm các chân hệ - CLK: Là chân bus PCI. Tất cả tín hiệ CKLRUN# đều kích p khác đều được xác địn - RST#: Là chân trạng thái ban đầu. + Nhóm các chân đị - AD31-AD0: Là ứng trên cùng một ch vào/ra thì đó là byte LK TDI TDO TCK ST# TMS TRST# (IEEE 1149.1) Hình 1.5: Tổ chức chân Bus PCI thống: vào, cung cấp đồng hồ thời gian cho mọi thực thi trên u, trừ RST#, INTA#, INTB#, INTC#, INTD#, PME# và hát ở sườn dương xung CLK và các thông số thời gian h thông qua tín hiệu này. vào, để đặt lại các thanh ghi và các tín hiệu khác về a chỉ và dữ liệu: các chân 3 trạng thái, kết hợp dữ liệu và địa chỉ tương ân tín hiệu. Trong nhịp địa chỉ, nếu truy cập địa chỉ địa chỉ vật lý còn nếu truy cập bộ nhớ thì đó là hai từ 16 (DWORD) địa chỉ vật lý. Một chu kỳ Bus bao gồm một nhịp địa chỉ và một hay nhiều nhịp dữ liệu. - C/BE3-C/BE0: Là các chân ba trạng thái, lệnh Bus _Command và Byte_enable được kết hợp trên các chân tín hiệu này. * Trong nhịp địa chỉ, C/BE3-C/BE0 định nghĩa lệnh Bus_Command. * Trong nhịp dữ liệu C/BE3-C/BE0 được sử dụng như các lệnh Byte_enable. - PAR: Chân ba trạng thái, là chân kiểm tra chẵn lẻ. + Nhóm các chân điều khiển giao diện. - FRAME#: Là chân ba trạng thái liên tục, được điều khiển bởi đối tượng chủ hiện hành nhằm chỉ ra điểm bắt đầu và thời gian có hiệu lực của sự truy cập. - IRDY#: Là chân ba trạng thái liên tục chỉ ra khả năng của đối tượng khởi đầu giao dịch có thể hoàn thành pha dữ liệu hiện hành của một nhịp trao đổi dữ liệu. - TRDY#: Là chân ba trạng thái chỉ ra khả năng của đối tượng đích có thể hoàn thành pha dữ liệu hiện hành của một nhịp trao đổi dữ liệu. Hai tín hiệu TRDY# và IRDY# thường được dùng kết hợp với nhau. - STOP#: Là chân ba trạng thái liên tục, chỉ ra đối tượng hiện tại yêu cầu đối tượng khởi đầu giao dịch ngưng sự thực thi hiện hành. - LOCK#: Là chân ba trạng thái dùng khi cầu PCI phục vụ nhiều đối tượng thực hiện trao đổi dữ liệu. - IDSEL#: Là chân vào lựa chọn thiết bị khởi tạo, chân này được sử dụng như một chân chọn chíp trong khi đặt khởi tạo sự thực hiện đọc và ghi dữ liệu. - DEVSEL#: Là chân ba trạng thái liên tục, lựa chọn thiết bị khi điều khiển hoạt động, nó chỉ ra đối tượng điều khiển mà địa chỉ của nó được giải mã như đối tượng đích của sự truy cập hiện hành. Như một chân vào, tín hiệu DEVSEL# chỉ ra thiết bị nào trên Bus đã được lựa chọn. 17 + Nhóm các chân báo lỗi: Được dùng để báo và sửa các lỗi về địa chỉ và dữ liệu trong khi trao đổi dữ liệu, gồm có chân SERR và PERR. - PERR#: Dùng báo lỗi chẵn lẻ của dữ liệu trong tất cả các thao tác trên bus, được điều khiển bởi đối tượng nhận dữ liệu. - SERR#: Dùng báo lỗi chẵn lẻ của dữ liệu và địa chỉ trong tất cả các thao tác trên bus. + Nhóm chân phân phối bus: Gồm chân REQ#, GNT# phục vụ cho việc chuyển quyền điều khiển bus giữa các đối tượng khởi đầu giao dịch. + Nhóm các chân ngắt: Ngắt trong bus PCI là tuỳ chọn với mức tích cực thấp. Một đối tượng yêu cầu ngắt khi nó đòi hỏi sự đáp ứng ngay của thiết bị điều khiển. Tín hiệu báo ngắt tồn tại cho đến khi thiết bị điều khiển xoá yêu cầu ngắt. Có 4 tín hiệu ngắt sau. - INTA#: Dùng yêu cầu ngắt. - INTB#: Dùng yêu cầu ngắt và chỉ dùng cho thiết bị đa chức năng. - INTC#: Dùng yêu cầu ngắt và chỉ dùng cho thiết bị đa chức năng. - INTD#: Dùng yêu cầu ngắt và chỉ dùng cho thiết bị đa chức năng. + Nhóm các chân bổ xung: - PRSNT1 và PRSNT2: là chân tín hiệu vào. Các card cắm trên slot dùng các tín hiệu này để báo cho bộ điều khiển PCI biết sự tồn tại của mình để cung cấp nguồn theo yêu cầu của card. Những tín hiệu này là bắt buộc đối với card bổ sung nhưng là tuỳ chọn đối tượng với board hệ thống. - CLKRUN#: Là chân tín hiệu vào tuỳ chọn được sử dụng như một tín hiệu vào cho thiết bị nhằm xác định trạng thái xung CLK. - M66EN#: Chân vào, chân này chỉ ra một thiết bị hay một phân đoạn bus sẽ thao tác ở tần số 66 MHz hay 33 MHz. 18 - PME#: Tín hiệu này là một tuỳ chọn mà có thể được sử dụng bởi một thiết bị nhằm yêu cầu một sự thay đổi trạng thái năng lượng của hệ thống hoặc thiết bị. - 3.3 Vaux: Là chân tín hiệu vào, một tuỳ chọn 3.3V hỗ trợ nguồn năng lượng cung cấp năng lượng cho một card bổ xung PCI. + Nhóm các chân mở rộng Bus 64 bit: Nếu sử dụng Bus mở rộng 64 bit thì tất cả các chân này đều được sử dụng. - AD63-AD32: Các chân địa chỉ và dữ liệu tương ứng được kết hợp trên cùng một chân tín hiệu cung cấp 32 bit bổ xung. Trong một nhịp địa chỉ thì 32 bit cao của địa chỉ 64 bit được truyền đi. Trong nhịp dữ liệu, 32 bit dữ liệu bổ xung được truyền đi khi tác vụ thực thi 64 bit được xác nhận bởi hai tín hiệu REQ64# và ACK64#. - CBE7-CBE4: Có chức năng giống như các tín hiệu CBE3-CBE0. - REQ66#: Tín hiệu yêu cầu truyền 64 bit. - ACK66#: Tín hiệu chấp nhận truyền 64 bit. - PAR64#: Chân tín hiệu chẵn lẻ 32 bit phần cao trong tổng số 64 bit dữ liệu. Trong nhịp địa chỉ và ghi dữ liệu được điều khiển bởi bộ điều khiển bus, trong nhịp đọc dữ liệu được điều khiển bởi đối tượng nhập dữ liệu. + Nhóm các chân quét đường biên/JTAG (tuỳ chọn). - TCK: Chân tín hiệu vào, để kiểm tra dữ liệu vào/ra của thiết bị. - TDI: Chân tín hiệu vào, kiểm tra dữ liệu và lệnh vào thiết bị. - TDO: Chân tín hiệu ra, kiểm tra dữ liệu và lệnh ra thiết bị. - TMS: Chân tín hiệu vào, điều khiển trạng thái quá trình kiểm tra thiết bị. - TRST#: Chân tín hiệu vào dùng khởi tạo một cách đồng bộ quá trình kiểm tra thiết bị. 19 + Nhóm các chân giao tiếp quản lí hệ thống bus (tuỳ chọn). - SMBCLK: Chân lựa chọn xung tín hiệu clock cho giao diện bus. - SMBDAT: Chân chọn dữ liệu cho giao diện bus. Tiếp theo ta sẽ nghiên cứu các yếu tố cơ bản nhất để có thể trao đổi dữ liệu trên bus PCI, bắt đầu từ lệnh điều khiển bus, giao thức trao đổi, tổ chức không gian địa chỉ, các thao tác cơ bản trên bus, sự kết thúc quá trình trao đổi dữ liệu và đồ hình trạng thái bus PCI. 1.3.2 Các lệnh Bus. Các lệnh bus chỉ ra thao tác, thiết bị đích của một thực thi truyền dữ liệu được yêu cầu bởi thiết bị chủ. Các lệnh Bus được mã hoá đầy đủ trên các chân C/BE3...C/BE0 và được phát đi trong pha địa chỉ. Chúng gồm: C/BE3...C/BE0 Tên lệnh 0000 Nhận ngắt 0001 Chu kỳ nhịp đặc biệt 0010 Đọc cổng vào/ra 0011 Viết cổng vào/ra 0100 Để dành 0101 Để dành 0110 Đọc bộ nhớ 0111 Ghi bộ nhớ 1000 Để dành 1001 Để dành 1010 Đọc cấu hình 1011 Ghi cấu hình 1100 Đọc bộ nhớ (theo khối) 1101 Hai chu kỳ địa chỉ 1111 Đọc bộ nhớ (theo khối) 20 1.3.3. Giao thức cơ bản của Bus PCI. Phương thức trao đổi dữ liệu chủ yếu của bus PCI là truyền khối (Bus PCI cho phép truyền khối đối với cả bộ nhớ và không gian địa chỉ cổng vào ra). Với phương thức này thì trên các đường tín hiệu ADxx bắt đầu là thông tin địa chỉ tiếp theo là một hoặc nhiều các nhịp dữ liệu (32/64 bit) trong khối đó. Sự truyền dữ liệu trên bus PCI được điều khiển bởi 3 tín hiệu chính sau: - FRAME#: Do đối tượng điều khiển Bus PCI khống chế để chỉ ra thời điểm bắt đầu và kết thúc quá trình trao đổi dữ liệu. - IRDY#: Do đối tượng điều khiển Bus PCI khống chế để chỉ ra nó có sẵn sàng trao đổi dữ liệu hay không. - TRDY#: Do đối tượng nhận dữ liệu khống chế để chỉ ra nó có sẵn sàng trao đổi dữ liệu hay không. Khi hai tín hiệu FRAME# và IRDY# không ở mức tích cực (mức cao) thì Bus PCI ở trạng thái trống. Tại chu kỳ Clock đầu tiên, nếu tín hiệu FRAME# ở mức tích cực thì trên bus có thông tin địa chỉ (ADxx) và mã lệnh (C/BE). Trong những chu kỳ Clock tiếp theo nhịp dữ liệu đầu tiên và các nhịp dữ liệu trong khối dữ liệu sẽ được trao đổi khi cả hai tín hiệu IRDY# và TRDY# đều ở mức tích cực (mức thấp). Trạng thái đợi có thể được chèn vào trong quá trình trao đổi dữ liệu nếu một trong hai tín hiệu IRDY# hoặc TRDY# không ở mức tích cực. Trong khi đang trao đổi một nhịp dữ liệu thì sự thay đổi của các tín hiệu điều khiển không có tác dụng cho đến khi hoàn thành nhịp dữ liệu này. Sau khi hoàn thành nhịp dữ liệu cuối cùng thì Bus PCI trở về trạng thái trống. 1.3.4. Định địa chỉ trên Bus PCI. Bus PCI xác định 3 không gian địa chỉ vật lý: Bộ nhớ, không gian địa chỉ vào/ra và không gian địa chỉ cấu hình (dùng hỗ trợ cấu hình phần cứng PCI). 21 + Định địa chỉ bộ nhớ: Các tín hiệu AD31 – AD02 cung cấp địa chỉ DWORD, còn tín hiệu AD1 và AD0 không tham gia định địa chỉ bộ nhớ mà được đối tượng điều khiển dùng thông báo dạng trao đổi dữ liệu. AD1 AD0 Thứ tự truyền khối 0 1 Tăng tuyến truyền 0 1 Dành cho người sử dụng 1 0 Chế độ bảo vệ 1 1 Dành cho người sử dụng + Định địa chỉ vào/ra: Cả 32 bit AD31 – AD0 được sử dụng, trong khi đó tín hiệu AD1 và AD0 có ý nghĩa nhất với đối tượng điều khiển để khởi đầu quá trình trao đổi dữ liệu. + Định địa chỉ cấu hình: Trong không gian địa chỉ cấu hình có 256 byte chứa thông tin không gian địa chỉ vào/ra hoặc bộ nhớ. 1.3.5. Tổ chức không gian cấu hình bus PCI. 00h 04h 08h 0Ch 10h 14h 18h 1Ch 20h 24h 28h 2Ch 30h 34h 38h Interrupt Line Interrupt Pin Min GntMax Lat Reserved Capabilities Pointer Reserved Expansion ROM Base Address Subsystem ID Subsystem Vendor ID Base Address Registers Cardbus CIS Poiter Device ID Vendor ID Command Status BIST Cacheline Size Revision ID Latency Timer Header Type Class Code 0 15 16 31 3Ch Hình 1.6: Đoạn đầu không gian cấu hình 22 Tất cả các đối tượng phải cung cấp đầy đủ thông số cho thiết bị điều khiển bus PCI, thông tin này đặt trong 64 byte đầu tiên của 256 byte cấu hình và được mô tả trong hình 1.6. Một trong những thanh ghi quan trọng là thanh ghi trạng thái và thanh ghi lệnh, hai thanh ghi này đều là các thanh ghi 16 bit và cùng nằm tại địa chỉ 04h trong không gian cấu hình của bus PCI. 1.3.5.1. Thanh ghi lệnh. Thanh ghi lệnh cho ta biết phần điều khiển thô trên những thiết bị có khả năng tạo và đáp ứng với một chu kỳ hoạt động của bus PCI. Khi “0” được ghi vào thanh ghi này thì thiết bị sẽ ngưng kết nối logic từ bus PCI với tất cả mọi sự truy cập chỉ ngoại trừ sự truy cập cấu hình. Mỗi bit riêng lẻ trong thanh ghi lệnh có hoặc không được thi hành và phụ thuộc vào chức năng của thiết bị. Ta có ví dụ như sau: Các thiết bị không thi hành tại không gian I/O và không gian I/O này sẽ không thực hiện một thành phần khả ghi tại vị trí bit “0” trên thanh ghi lệnh. Interrupt Disable Fast Back-to-Back Enable SERR# Enable Reserved Parity Error Response VGA Palette Snoop Memory Write and Invalidate Enable Special Cycles Bus Master Memory Space I/O Space 15 10 9 8 7 6 5 4 3 2 1 0 Reserved Hình 1.7: Tổ chức thanh ghi lệnh - Bit 0: Điều khiển một phản ứng của thiết bị tới sự truy cập không gian I/O. * Mức ‘0’: Không cho phép thiết bị phản ứng lại. * Mức ‘1’: Cho phép thiết bị đáp ứng tới sự truy cập không gian I/O. 23 - Bit 1: Điều khiển một phản ứng của thiết bị tới sự truy cập không nhớ. * Mức ‘0’: Không cho phép. * Mức ‘1’: Thì cho phép thiết bị đáp ứng tới việc truy cập không gian nhớ. - Bit 2: Điều khiển một thiết bị hoạt động như một thiết bị chủ trên bus PCI. * Mức ‘0’: Không cho phép. * Mức ‘1’: Thì cho phép thiết bị hoạt động như một bus chủ. - Bit 3: Điều khiển hoạt động của thiết bị trên một chu kỳ đặc biệt. * Mức ‘0’: Thì thiết bị lờ đi tất cả sự thực hiện trên một chu kỳ. * Mức ‘1’: Cho phép thiết bị giám sát mọi chu kỳ. - Bit 4: cho ta sử dụng bộ nhớ ghi và các lệnh không định sẵn. * Mức ‘1’: Thì thiết bị chủ có thể tạo lệnh. * Mức ‘0’: Thì bộ nhớ ghi được sử dụng thay cho thiết bị chủ. - Bit 5: Điều khiển card VAG tương thích với thiết bị đồ hoạ điều khiển tới thanh ghi bảng màu. * Mức ‘1’: Bảng màu được cho phép sử dụng. * Mức ‘0’: Thì thiết bị nên xem xét ghi bảng màu cho mọi sự truy cập. - Bit 6: Điều khiển sự phản ứng của thiết bị với sai số chẵn lẻ. Khi bit này có mức ‘1’ thì thiết bị hoạt động ở mức bình thường và khi đó một sai số chẵn lẻ được phát hiện. - Bit 8: Là bit cho phép cho bộ điều khiển SERR#. * Mức ‘0’: Không cho điều khiển tín hiệu SERR#. * Mức ‘1’: Thì cho phép điều khiển SERR#. - Bit 9: Điều khiển tuỳ chọn đọc, ghi một thiết bị chủ có sự giao dịch kiểu Back-to-Back đối với thiết bị khác. Phần mềm khởi tạo sẽ được thiết lập nếu thiết bị đích cũng có khả năng giao dịch kiểu back-to-back. - Bit 10: Cho phép xác nhận INTx#. - Bit 7 và bit 11÷15: Để dành. 24 1.3.5.2. Thanh ghi trạng thái. Dùng để ghi thông tin trạng thái để bus PCI liên hệ các sự kiện. 15 14 13 12 11 10 9 8 7 6 5 4 3 0 Reserved Interrupt Status Capabilities List 66MHz Capable Reserved Fast Back-to-Back Capable Master Data Parity Error DEVSEL Timing 00 - fast 01 - medium 10 - slow Signaled Target Abort Received Target Abort Received Master Abort Signaled System Error Detected Parity Error Hình 1.8: Tổ chức thanh ghi trạng thái - Bit 0 - bit 2: Dành riêng cho người sử dụng. - Bit 3: Chỉ cho phép đọc, nó phản ánh trạng thái ngắt trong thiết bị. - Bit 4: Tuỳ chọn mà chỉ đọc nó biểu thị có hay không có thiết bị thi hành con trỏ cho khả năng mới tại offset 34h. * Mức ‘0’: Hiển thị không có khả năng mới. * Mức ‘1’: Hiển thị giá trị đang được đọc tại địa chỉ 34h. - Bit 5: Là bit chỉ đọc (tuỳ chọn) nó hiển thị có hay không các thiết bị này có khả năng chạy tại tần số 66 Mhz. * Mức ‘0’: Là tại tần số 33Mhz. * Mức ‘1’: Là tại tần số 66Mhz. 25 - Bit 6: Là bit để dành. - Bit 7: Là bit chỉ đọc (tuỳ chọn) nó chỉ cho biết có hay không thiết bị đích có thể chấp nhận sự giao dịch kiểu back-to-back khi sự giao dịch đó không có cùng các tác nhân. * Mức ‘1’: Là chấp nhận. * Mức ‘0’: Không chấp nhận. - Bit 8: Chỉ được thực hiện bởi thiết bị điều khiển bus. Nó được thiết lập theo ba điều kiện sau: * Tác nhân bus phải đặt tín hiệu PERR# ở mức tích cực. * Thiết lập tác nhân như thiết bị điều khiển bus cho sự thiết lập này với những sai số đã xảy ra. * Bit điều khiển phản ứng với sai số chẵn lẻ (bit 6 thanh ghi lệnh) được thiết lập. - Bit 9 và bit 10: Là những bit mã hoá định thời của tín hiệu DEVSEL#. * ‘00b’ ứng tốc độ nhanh. * ‘01b’ ứng tốc độ trung bình. * ‘10b’ ứng tốc độ chậm. * ‘11b’ dùng để dành. - Bit 11: Bit này phải được thiết lập bởi thiết bị đích. - Bit 12: Bit này phải được thiết lập bởi thiết bị chủ, mỗi khi kết thúc quá trình trao đổi dữ liệu của thiết bị chủ theo kiểu bỏ qua vai trò thiết bị đích. - Bit 13: Bit này phải được thiết lập bởi thiết bị chủ mỗi khi có sự kết thúc quá trình trao đổi dữ liệu theo kiểu bỏ qua vai trò thiết bị chủ. - Bit 14: Bit này phải được thiết lập mỗi khi thiết bị xác nhận tín hiệu SERR#. - Bit 15: Bit này phải được thiết lập bởi thiết bị đích mỗi khi thiết bị đó phát hiện ra một sai số chẵn lẻ (như bit thứ 6 trên thanh ghi lệnh). 26 1.3.6. Các thao tác cơ bản trên bus PCI. Các giao diện trên bus PCI có nhiều thao tác rất phức tạp, ta sẽ phân tích hai thao tác quan trọng nhất là đọc và ghi dữ liệu 32 bit trên bus PCI, và sau đó ta tìm hiểu về cách để các đối tượng kết thúc một giao dịch Bus. 1.3.6.1. Chu kỳ đọc dữ liệu với bus PCI 32 bit. Đồ thị thời gian của chu kỳ đọc dữ liệu thể hiện như sau: BE#’s DEVSEL# TRDY# IRDY# C/BE# Data-2 Data-3 Data-1 Bus CMD AD Bus transaction Data Phase Data Phase Data Phase Address Phase Address D at a tr an fe r D at a tr an fe r W ai t W ai t D at a tr an fe r W ai t FRAME# CLK 9 8 7 6 5 4 3 21 Hình 1.9: Chu kỳ đọc dữ liệu. Chu kỳ đọc bắt đầu với một nhịp địa chỉ và quá trình giao dịch đọc chỉ xảy ra khi FRAME# chuyển thành mức tích cực lần đầu tiên và xảy ra trên xung clock thứ hai mở đầu cho nhịp địa chỉ. Trong suốt nhịp địa chỉ các tín hiệu AD31- AD00 chứa thông tin địa chỉ còn các tín hiệu C/BE3-C/BE0 chứa lệnh bus tương ứng. Xung clock đầu tiên của nhịp dữ liệu đầu tiên là xung clock thứ 3. Một nhịp dữ liệu có thể có gồm một chu kỳ đợi và một chu kỳ truyền dữ liệu. 27 Tín hiệu trên các chân C/BE phải được giữ nguyên (cho cả hai quá trình đọc và ghi) từ chu kỳ clock đầu tiên của nhịp dữ liệu đến điểm cuối cùng của quá trình giao dịch. Điều này đảm bảo C/BE # không được dịch trái khoảng dài. Các tín hiệu C/BE chứa Byte –Enable hợp lệ trong toàn bộ nhịp dữ liệu độc lập với trạng thái của tín hiệu IRDY#. Các tín hiệu C/BE# chứa thông tin về Byte-Enable cho (N+1) nhịp dữ liệu trong cả khối dữ liệu. Nhịp dữ liệu đầu tiên trên một quá trình giao dịch đọc quy định một chu kỳ quay vòng (làm cho hiệu lực bởi thiết bị đích qua TRDY#) trong trường hợp này nhịp địa chỉ hợp lệ trên xung clock thứ hai và sau đó đối tượng điều khiển các tín hiệu AD sớm nhất thì thiết bị đích có thể cung cấp dữ liệu hợp lệ trên xung clock thứ tư. Đối tượng đích phải điều khiển các tín hiệu AD và thông báo chu kỳ quay vòng khi tín hiệu DEVSEL# được xác nhận. Một nhịp dữ liệu được hoàn tất khi dữ liệu đã được truyền. Điều này xảy ra khi cả hai tín hiệu IRDY# và TRDY# được xác nhận trên cùng một mức sườn dương của xung clock. Tín hiệu TRDY# không được điều khiển cho tới khi tín hiệu DEVSEL# được xác nhận. Khi đó nếu tín hiệu IRDY# hoặc TRDY# không được xác nhận (do không đáp ứng kịp) thì một chu kỳ đợi được chèn vào và dữ liệu không được truyền. Dữ liệu được truyền trên chu kỳ clock 4, 6, 8 và chu kỳ đợi được chèn vào trên xung clock 3, 5, 7. Trên hình 1.9 nhịp dữ liệu đầu tiên được hoàn tất trong bộ định thời cho một quá trình giao dịch đọc. Nhịp dữ liệu thứ hai được mở rộng trên chu kỳ clock 5 bởi vì tín hiệu TRDY# không tích cực. Và nhịp dữ liệu cuối cùng được mở rộng trên chu kỳ clock thứ 7 vì tín hiệu IRDY# không tích cực. Đối tượng điều khiển cho biết tại chu kỳ clock thứ 7 thì nhịp dữ liệu tiếp theo là nhịp dữ liệu cuối cùng. Tuy nhiên bởi vị nó không sẵn sàng để hoàn thành 28 nhịp truyền dữ liệu cuối cùng (tín hiệu IRDY# không tích cực tại xung clock thứ 7) và tín hiệu FRAME# ở mức tích cực. Chỉ khi tín hiệu IRDY# ở mức tích cực, tín hiệu FRAME# không ở mức tích cực tại xung lock thứ 8 chỉ cho đối tượng đích biết rằng đã hoàn tất nhịp dữ liệu cuối cùng của quá trình giao dịch. 1.3.6.2. Chu kỳ ghi dữ liệu với bus PCI 32 bit. Đồ thị thời gian của chu kỳ ghi dữ liệu thể hiện : BE#’s-3 BE#’s-2 BE#’s-1 Data-2 DEVSEL# TRDY# IRDY# C/BE# Data-3 Bus CMD AD Bus transaction Data Phase Data Phase Data Phase Address Phase Data-1 Address D at a tr an fe r D at a tr an fe r W ai t W ai t D at a tr an fe r W ai t FRAME# CLK 9 8 7 6 5 4 3 21 Hình 1.10: Chu kỳ ghi dữ liệu. Chu kỳ ghi bắt đầu khi tín hiệu FRAME# được xác nhận tại xung clock thứ 2. Quá trình giao dịch ghi tương tự như quá trình giao dịch đọc ngoại trừ không có chu kỳ quay vòng vì đối tượng điều khiển cung cấp cả địa chỉ và dữ liệu. Nhịp dữ liệu đầu tiên và nhịp dữ liệu thứ hai hoàn thành không có trạng thái đợi. Tuy nhiên trong nhịp dữ liệu thứ 3 có 3 trạng thái đợi được chèn vào. Chu kỳ này kết thúc khi tín hiệu IRDY# phải ở mức tích cực và tín hiệu FRAME# không ở mức tích cực. 29 Dữ liệu bị giữ chậm bởi đối tượng điểu khiển tại chu kỳ clock thứ 5 vì tín hiệu IRDY # không ở mức tích cực, nhịp dữ liệu cuối cùng được báo hiệu tại chu kỳ clock thứ 6 và nó được hoàn thành tại chu kỳ clock thứ 8. 1.3.7. Sự kết thúc quá trình trao đổi dữ liệu. Sự kết thúc của giao dịch PCI có thể được bắt đầu bởi đối tượng điều khiển hoặc đối tượng bị điều khiển. Trong thực tế không thể dừng quá trình giao dịch đơn phương. Phần còn lại của đối tượng điều khiển trong sự điều khiển cuối cùng và mang lại tất cả các quá trình giao dịch có thứ tự và có tính hệ thống. Tất cả quá trình giao dịch sẽ được kết thúc khi tín hiệu FRAME# và IRDY# được chuyển về mức không tích cực. 1.3.7.1. Đối tượng điều khiển bắt đầu sự kết thúc quá trình giao dịch. Cơ cấu kỹ thuật sử dụng trong đối tượng điều khiển bắt đầu kết thúc quá trình giao dịch trong khi tín hiệu FRAME# ở mức không tích cực và tín hiệu IRDY# ở mức tích cực. Những tín hiệu này chỉ cho đối tượng bị điều khiển biết rằng giai đoạn dữ liệu cuối cùng được tiến hành. Quá trình trao đổi dữ liệu cuối cùng xảy ra khi cả 2 tín hiệu IRDY# và TRDY# ở mức tích cực. Quá trình giao dịch hoàn thành khi cả 2 tín hiệu FRAME# và IRDY# ở mức không tích cực (trạng thái bus rỗi). Đối tượng điều khiển bắt đầu thực hiện quá trình giao dịch cuối cùng với 2 lý do sau: * Một là: Sự hoàn thành quá trình giao dịch khi đối tượng điều khiển có sự kết thúc giao dịch như mong muốn. * Hai là: Thời gian ấn định cho sự kết thúc giao dịch khi tín hiệu GNT# của đối tượng điều khiển ở mức không tích cực và bên trong bộ định thời trễ mất hiệu lực. Ở hình 1.11 ta thấy giai đoạn dữ liệu cuối cùng được hoàn tất khi tín hiệu FRAME# ở mức không tích cực và cả hai chân tín hiệu IRDY#, TRDY# ở mức tích cực. Như vậy, bus có trạng thái rỗi khi tín hiệu IRDY# không ở mức 30 tích cực, điều đó chỉ xảy ra ở xung clock thứ 4. Lưu ý: Tín hiệu TRDY# không được yêu cầu ở mức tích cực tại xung clock thứ 3. Trên hình bên trái tín hiệu FRAME# ở mức không tích cực tại xung clock thứ 3 bởi vì bộ định thời mất hiệu lực và đối tượng điều khiển sẵn sàng cho quá trình truyền dữ liệu cuối cùng. T.O T.O 1 2 3 4 1 2 3 4 CLK GNT# FRAME# IRDY# TRDY# Hình 1.11: Đối tượng điều khiển bắt đầu kết thúc trao đổi. Tín hiệu FRAME# và IRDY# có quan hệ mật thiết với nhau trong tất cả các quá trình giao dịch. Tín hiệu FRAME# có thể ở mức không tích cực trước khi tín hiệu IRDY# ở mức tích cực. Cầu nối bus chủ trong hệ thống PC tương thích phải trở về xung thứ nhất trên một quá trình giao dịch đọc và loại bỏ dữ liệu trên một quá trình giao dịch khi đã kết thúc với Master - abort. 1.3.7.2. Đối tượng bị điều khiển bắt đầu sự kết thúc quá trình giao dịch. Có 3 kiểu đối tượng bị điều khiển bắt đầu sự kết thúc giao dịch: + RETRY: Nó được đưa vào kết thúc yêu cầu trước khi bất kỳ dữ liệu nào được truyền đi bởi đối tượng bị điều khiển và tạm thời không cho phép tiến hành giao dịch. Điều kiện này có thể xảy ra bởi vì đối tượng bị điều khiển không có độ trễ ban đầu như yêu cầu. Retry là một trường hợp đặc biệt của sự 31 ngưng kết nối không cần quan tâm đến quá trình trao đổi dữ liệu cuối cùng đã kết thúc hay chưa. + DESCONET: Yêu cầu cuối cùng sau khi dữ liệu được truyền tại giai đoạn dữ liệu đầu bởi vì đối tượng bị điều khiển không cho phép đáp ứng trong phạm vi độ trễ được yêu cầu. Lưu ý là Disconect # Retry. + TAGERT - ABORT: Là yêu cầu kết thúc bất thường bởi vì đối tượng bị điều khiển đã tìm ra một sai số tiền định hoặc nó không cho phép hoàn thành yêu cầu của đối tượng điều khiển. Ví dụ khi đối tượng điều khiển yêu cầu đọc dạng DWORD tất cả các Byte trong không gian địa chỉ vào/ra, nhưng đối tượng bị điều khiển được thiết kế chỉ để trao đổi dạng byte. Từ đó đối tượng bị điều khiển không thể hoàn thành yêu cầu, nó kết thúc yêu cầu với Tagert - abort. 1.3.7.3. Ngưng kết nối không cần sự kết thúc nhịp dữ liệu. 1 2 3 4 5 6 7 8 D at a tr an fe r D at a tr an fe r Data Phase Data Phase Data Phase Data Phase CLK FRAME# IRDY# TRDY# STOP# DEVSEL# Hình 1.12: Ngưng kết nối dạng thứ 1 Hình 1.12 chỉ ra cho ta thấy một quá trình giao dịch bị chấm dứt với việc ngưng kết nối không cần đến sự kết thúc nhịp dữ liệu. Một quá trình giao dịch bắt đầu khi tín hiệu FRAME# ở mức tích cực trên xung clock thứ 2 và chân IRDY# ở mức tích cực trên xung clock thứ 3. 32 Đối tượng điều khiển đang yêu cầu truyền khối dữ liệu bởi vì cả hai tín hiệu FRAME# và IRDY# đều được ở mức tích cực trên xung clock thứ 3. Đối tượng bị điều khiển khẳng định sự giao dịch thông qua tín hiệu DEVSEL# tại xung clock thứ 4. Nhịp dữ liệu đầu tiên hoàn thành trên xung clock thứ 4 và nhịp thứ hai hoàn thành trên xung clock thứ 5. Tại xung clock thứ 6 đối tượng điều khiển muốn tiếp tục truyền dữ liệu bởi vì cả 2 tín hiệu FRAME# và IRDY# vẫn còn ở mức tích cực. Tuy nhiên đối tượng bị điều khiển không thể hoàn thành bất cứ nhịp dữ liệu nào nữa và tại xung clock thứ 6 thì chân STOP# ở mức tích cực còn chân TRDY# không ở mức tích cực. Khi đó thì chân IRDY# và STOP# đều ở mức tích cực tại xung clock thứ 6, lúc đó nhịp dữ liệu thứ 3 hoàn thành. Đối tượng bị điều khiển vẫn tiếp tục giữ tín hiệu STOP# ở mức tích cực vì tín hiệu FRAME# vẫn còn ở mức tích cực tại xung clock thứ 6. Nhịp thứ 4 và là nhịp dữ liệu cuối cùng được hoàn thành tại xung clock thứ 7. Bus quay trở lại trạng thái nhàn rỗi tại xung clock thứ 8. Trong ví dụ này, hai nhịp dữ liệu đầu tiên hoàn thành sự truyền dữ liệu trong khi hai nhịp cuối cùng thì không. Đối tượng bị điều khiển có thể hoàn thành hai nhịp dữ liệu đầu tiên nhưng nhịp thứ ba thì không được hoàn thành. 1 2 3 4 5 6 7 8 D at a tr an fe r D at a tr an fe r Data Phase Data Phase Data Phase CLK FRAME# IRDY# TRDY# STOP# DEVSEL# Hình 1.13: Ngưng kết nối dạng thứ 2 33 Với hình 1.13, ta thấy rằng quá trình giao dịch cũng được mô tả như trên hình 1.12 ngoại trừ đối tượng điều khiển chèn thêm một trạng thái đợi ở xung clock thứ 6. Khi đó tín hiệu FRAME# đã được ở mức tích cực tại xung clock thứ 5, đối tượng điều khiển đưa vào ít nhất một nhịp dữ liệu và phải hoàn thành nó. Đối tượng điều khiển hoàn toàn không cho phép để chuyển tiếp bus tới trạng thái nhàn rỗi bởi tín hiệu FRAME# không ở mức tích cực và giữ tín hiệu IRDY# không ở mức tích cực. Khi đối tượng điều khiển sẵn sàng để xác nhận IRDY#, nó chỉ ra sự không xác nhận tín hiệu FRAME# tại nhịp dữ liệu cuối cùng và nhịp dữ liệu cuối cùng sẽ hoàn thành tại xung clock thứ 7, khi đó tín hiệu STOP# ở mức tích cực. Trong ví dụ này chỉ gồm có 3 nhịp dữ liệu trong khi đó ở ví dụ trước là 4, bởi vì đối tượng điều khiển đã chèn thêm một trạng thái đợi nên đã cho phép đối tượng điều khiển hoàn thành quá trình giao dịch bus với 3 nhịp dữ liệu. 1.3.7.4. Sự giao dịch bị bãi bỏ bởi đối tượng bị điều khiển. 1 2 3 4 CLK FRAME# IRDY# TRDY# STOP# DEVSEL# Hình 1.14: Sự giao dịch bị bãi bỏ bởi đối tượng bị điêu khiển. 34 Hình trên chỉ cho biết là đối tượng bị điều khiển yêu cầu một quá trình giao dịch để ngưng và không muốn đối tượng bị điều khiển lặp yêu cầu một lần nữa. Đôi lúc trước xung clock thứ 1 đối tượng điều khiển đã xác nhận tín hiệu FRAME# để khởi đầu sự yêu cầu và đối tượng bị điều khiển yêu cầu truy cập bởi sự xác nhận DEVSEL#. Nhịp dữ liệu có thể hoặc không thể hoàn thành trước xung clock 1. Tại xung clock thứ 2, đối tượng bị điều khiển xác định rằng đối tượng điều khiển có yêu cầu một quá trình giao dịch mà với quá trình giao dịch đó thì đối tượng bị điều khiển không có khả năng để hoàn thành hoặc xác định rằng có một lỗi không thể sửa được đã xảy ra. Tín hiệu DEVSEL# phải ở mức tích cực cho một hoặc nhiều hơn một xung clock. Đối với tín hiệu Target-abort thì TRDY# phải ở mức không tích cực khi tín hiệu DEVSEL# ở mức không tích cực và tín hiệu STOP# ở mức tích cực. Nếu bất cứ dữ liệu nào đã được truyền trong suốt nhịp dữ liệu trước đó của quá trình giao dịch hiện thời, vì tín hiệu STOP# đã ở mức tích cực tại xung clock thứ 2 và đối tượng điều khiển có thể xác nhận tín hiệu IRDY# tại xung clock thứ 3, nó không xác nhận FRAME# tại xung clock thứ 3. Quá trình giao dịch có thể hoàn thành tại xung clock thứ 3 bởi vì tín hiệu IRDY# và STOP# ở mức tích cực. Tại xung clock thứ 4, đối tượng điều khiển không xác nhận tín hiệu IRDY# và đối tượng bị điều khiển cũng không xác nhận tín hiệu STOP#. 1.3.7.5. Sự giao dịch trễ. Sự giao dịch trễ được thực hiện bởi đối tượng bị điều khiển và nó không thể hoàn thành nhịp dữ liệu ban đầu. Có hai kiểu thiết bị sẽ sử dụng thực hiện sự giao dịch trễ: Bộ điều khiển vào/ra và cầu nối (đây là cầu PCI-to-PCI). Một cách tổng quát bộ điều khiển vào/ra sẽ điều khiển sự giao dịch trễ đơn (delayed transaction) tại một thời 35 điểm, trong khi đó cầu nối có thể chọn để điều khiển sự truyền khối để cải thiện sự thực thi hệ thống. Một thuận lợi của sự giao dịch trễ đó là bus không được giữ ở trạng thái đợi trong khi hoàn thành một truy cập tới thiết bị thấp hơn trong khi đối tượng điều khiển gốc tái phân giải cho bus. 1.3.8. Đồ hình trạng thái bus PCI. Vì bus PCI đồng bộ hoàn toàn nên tất cả các thao tác đều hoạt động theo đồng hồ hệ thống. Hình 2.12 mô tả sự chuyển biến trạng thái trên bus PCI. Kết thúc một chu kỳ Bus trống Bắt đầu chu kỳ đọc Bắt đầu chu kỳ ghi Reset 7 6 5 2 3 4 0 Hình 1.15: Đồ hình trạng thái bus PCI Trạng thái 4: Bus đang ở trạng thái nghỉ, điểm đầu của 1 chu kỳ bus được phát hiện theo điều kiện này. Nó chuyển sang trạng thái 2 hoặc trạng thái 5 khi chu kỳ I/O được khởi hoạt cho thiết bị đích. Nó chuyển sang trạng thái 0 nếu chu kỳ bus bắt đầu mà không liên quan đến thiết bị này. 36 Trạng thái 0: Bus ở trạng thái nghỉ, bất kỳ một tác vụ nào khác cũng được thực hiện. Nó đợi cho đến khi có điều kiện nghỉ thì từ trạng thái này nó không chuyển về trạng thái mới. Trạng thái 2: Một chu kỳ bus I/O được thực hiện cho thiết bị này. Thiết bị này sẽ xác nhận tín hiệu DEVSEL# và đáp ứng chu kỳ bus. Trong cùng thời gian thiết bị đích xác nhận tín hiệu TRDY# và báo rằng nó có thể nhận dữ liệu, lúc này nó khoá dữ liệu và chuyển về trạng thái 3 khi tín hiệu IRDY# được xác nhận và tín hiệu FRAME# không ở mức tích cực. Trạng thái 3: Các tín hiệu DEVSEL# và TRDY# không ở mức tích cực. Thông thường tín hiệu DEVSEL# và TRDY# được phát ở xung clock tiếp theo và chuyển về trạng thái nghỉ. Nhưng nó chuyển trực tiếp về trạng thái 2 hoặc trạng thái 5 mà không phải đi qua trạng thái chờ khi nó gặp thiết bị ở trạng thái này và lệnh đọc ghi I/O được đưa ra một lần nữa (trở nhanh về tác vụ ngược). Trạng thái 5: Bắt đầu chu kỳ đọc. Trạng thái 6: Chu kỳ đọc đang được thực hiện. Thiết bị đích xác nhận tín hiệu DEVSEL# và đáp trả chu kỳ đọc. Cùng lúc đó nó xuất dữ liệu đọc tới các đường tín hiệu AD và xác nhận tín hiệu TRDY#. Lúc này, nó chuyển về trạng thái 7 khi tín hiệu IRDY# được đặt mức tích cực (bộ khởi hoạt có thể tiếp nhận dữ liệu đọc) và tín hiệu FRAME# không có mức tích cực (nhịp dữ liệu cuối cùng). Trạng thái 7: Chu kỳ đọc kết thúc. Thiết bị đích bỏ các tín hiệu DEVSEL#, TRDY#. Sau đó phát tín hiệu DEVSEL#, TRDY# ở clock tiếp theo và nó chuyển về trạng thái nghỉ. Trạng thái 1: Không được xác định ngay cả khi nó gặp trạng thái này vì lý do lỗi thì nó cũng chuyển về trạng thái 0. 37 CHƯƠNG II . CHUẨN GIAO DIỆN USB. 2.1. Giao diện USB. Chuẩn Bus tuần tự đa năng USB (Universal Serial Bus) được các hãng lớn như Intel, Microsoft, IBM, HP-Compaq, NEC, Philip cùng tham gia xây dựng. Chuẩn này đề xuất một giải phát giao diện chuẩn hóa cho tất cả các thiết bị ngoại vi có thể dùng một cổng I/O và như vậy giúp giảm đi nhiều cổng I/O cho các thiết bị ngoại vi như hiện nay. Universal Serial Bus là một giao thức truyền dư liệu tuần tự giữa máy tính PC (hay chủ USB – USB Host) với các thiết bị ngoại vi. Máy tính PC được coi như chủ của hệ thống bus. Nguyên tắc kết nối này hoàn toàn tương tự cách trao đổi thông tin trong mạng máy tính. Dữ liệu được truyền trên giao USB theo hai chế độ : • Chế độ Full speed với tốc độ 12 Mbs. • Chế độ Low speed với tốc độ 1.5 Mbs. Hình 2.1: Sơ đồ cấu trúc ghép nối tầng của các thiết bị ngoại vi dùng USB 38 Với chuẩn giao diện USB có thể kết nối tối đa 127 thiết bị bằng cách nối nối tiếp nhau hoặc dùng bộ Hub trung tâm. Bẩy thiết bị ngoại vi có thể nối tới 1 hub, trong đó bao gồm cả thiết bị hub để có thể nối tiếp với 7 thiết bị tiếp theo nữa. Như vậy thiết bị ngoại vi có thể được nối trực tiếp với máy chủ hay gián tiếp qua bộ tiếp nối Hub. Ưu điểm chính của USB là: y Ghép nối đơn giản do ổ cắm được chuẩn hóa. y Linh hoạt trong sử dụng. y Dễ chiển khai và chi phí thấp. Một ưu điểm nữa của USB là tính năng cắm-là-chạy “nóng” (Hot Plug- and- play). Tức là người sử dụng có thể cắm thêm hoặc tháo ra một thiết bị ngoại vi mà không cần tắt máy chủ hay cài đặt lại hệ thống. 2.1.1. Bộ kết nối USB Tất cả các thiết bị USB có một sự kết nối ngược chiều tới các máy chủ và tất cả máy chủ có một sự kết nối ngược chiều tới các thiết bị khác. Sự kết nối ngược chiều và thuận chiều thì không thể thay thế cho nhau một cách máy móc. Có hai kiểu khá phổ biến cho bộ kết nối USB, gọi là kiểu A và B. Kiểu “A “ Kiểu “B “ Hình 2.2: Hai kiểu nối của chuẩn USB 39 Kiểu A cắm mặt ngược chiều. Lỗ cắm kiểu A là loại lỗ cắm phổ biến trong bảng mạch chủ của máy tính. Lỗ cắm kiểu B luôn luôn được kết nối thuận chiều và chính vì vậy lỗ cắm kiểu B luôn luôn được thiết lập trên thiết bị. Kiểu A có dây nối kiểu dây thẳng và một ma trận của USB có một vài sự thay đổi trong một vài trạng thái lưu trữ của máy tính. Với lỗ cắm kiểu B có miền kết nối rộng và dễ dàng kết nối với các thiết bị ngoại vi khác. Cáp USB gồm có 4 dây dẫn, hai dây dẫn điện và hai dây truyền tín hiệu. Hinh 2.3: Cap USB Thường kiểu màu của các dây dùng cho cáp USB quy định như sau: Pin Number Cable Colour Funtion 1 Red VBUS (5 volts) 2 White D- 3 Green D+ 4 Black Ground Bảng chức năng của chân tín hiệu trong bộ nối USB Với bảng này có thể cho biết nhận dạng các dây nối qua cổng USB. 2.1.2. Đặc tính điện của cổng USB. USB sử dụng một cặp biến đổi sai phân cho dữ liệu. Trên một thiết bị giao tiếp có tốc độ thấp và đầy đủ, nếu tín hiệu sai phân là "1" thì dữ liệu được truyền qua chân D+ với mức điện áp trên 2,8 V với một điện trở 15Ω kéo xuống mặt đất và qua chân D- (chân 2) có mức điện áp dưới 0,3 V cùng một 40 điện trở 1,5 Ω lên tới 3,6V,. Nếu tín hiệu sai phân là "0" thì trên một kênh điều khiển khác chân D- lớn hơn 2,8V và chân D+ ít hơn 0,3V cùng một giới hạn điện trở thích hợp. Thiết bị thu xác định một tín hiệu sai phân "1" khi D+ là 200mV lớn hơn D- và là "0" khi D+ ít hơn D-. Cực tính của tín hiệu bị đảo ngược tín hiệu phụ thuộc vào tốc độ của bus. Máy phát USB có cả tín hiệu sai phân và một tín hiệu ra. Tất nhiên trạng thái bus được chỉ ra bởi một tín hiệu trên D+ , D- hoặc cả hai. Bus có tốc độ thấp hoặc cao có đặc tính trở kháng 90Ω+/15%. Đặc tính này rất quan trọng để quan sát dạng dữ liệu khi chọn trở kháng thoả mãn chuỗi điện trở cho D+ và D-. Ở chế độ tốc độ cao (480Mb/s) có dòng điện cố định 17,78 mA cho việc truyền tín hiệu để giảm nhiễu. Chế độ trì hoãn tạm thời có tính bắt buộc với mọi thiết bị. Dòng hoãn có gía trị tối đa tương ứng với một đơn vị tải được mặc định là 500µA. Tại máy truy cập chủ cả D+ và D- có điện trở ngược là 15KΩ và tại thiết bị ngoại vi có điện trở 1,5 KΩ. Rất nhiều thiết bị USB hoạt động với mức điện áp 3,3 V. Một thiết bị USB có chế độ hoãn khi ở thiết bị đó không hoạt động trên bus. Sự duy trì kết nối tới chế độ hoãn của máy truy cập chủ hoặc máy chủ thì thiết bị USB vẫn phải cung cấp nguồn để nó tăng cường sự lựa chọn điện trở trong suốt chế độ hoãn. 2.1.3. Giao thức truyền USB. Không giống như giao thức truyền nối tiếp thông thường, mỗi giao dịch USB bao gồm: • Gói dấu hiệu : chứa địa chỉ. 41 • Gói tính chất dữ liệu. • Gói trạng thái. Máy USB chủ sẽ giữ bus hoạt động liên tục bằng cách truyền một gói khởi động khung SOF trong chu kỳ 1ms (1KHz). Gói dấu hiệu được tạo ra bởi thiết bị chủ để mô tả gói tiếp theo và thao tác đối với dữ liệu là gì (đọc hay ghi). Gói tiếp theo thường là gói dữ liệu mang dung lượng. Và cuối cùng là gói trạng thái dùng để bắt tay, thông báo dữ liệu đã được nhận thành công hay có lỗi khi giao dịch. 2.1.5. Cấu trúc gói USB. Cấu trúc 1 gói thông thường bao gồm các trường: • Đồng bộ (SYNC): tất cả các gói đều bắt đầu bằng trường SYNC có độ dài 8 bit, (ở chế độ high-speed trong USB 2.0 là 32 bit) dùng đồng bộ của đối tượng truyền và nhận dữ liệu. • Mã gói: được mã hoá bởi 4 bit trong thanh ghi PID (packet identifier) 8 bit. Mã gói cho ta biết các kiểu cấu trúc gói như sau: Group Pro Value Packet Identifier 0001 OUT Token 1001 IN Token 0101 SOF Token Token 1101 SETUP Token 0011 DATA0 1011 DATA1 0111 DATA2 Data 1111 MDATA 42 0010 ACK Handshake 1010 NAK Handshake 1110 STALL Handshake Handshake 0110 NYET (No Response Yet) 1100 PREamble 1100 ER 1000 Split 0100 Ping Special 0000 Reserved • Trường địa chỉ (ADDR) : dùng 7 bit để định địa chỉ cho 127 thiết bị ngoại vi. • Trường dữ liệu (DATA) : có độ dài từ 0 byte đến 1023 byte. Và các trường khác như: định điểm cuối ENDP, kiểm tra chu kỳ thừa CRC, kết thúc gói EOP. Tùy vào từng kiểu gói mà các trường trên có hoặc không có trong gói. 2.1.5. Các kiểu gói USB. Có 4 kiểu gói khác nhau: - Gói dấu hiệu: chỉ thông báo kiểu giao dịch: + Vào: thông báo thiết bị USB HOST muốn đọc thông tin. + Ra: thông báo thiết bị USB HOST muốn gửi thông tin. 43 + Thiết lập: Bắt đầu điều khiển sự trao đổi. Định dạng của gói như sau: Sync PID ADDR ENDP CRC5 EOP - Gói dữ liệu: có 2 kiểu, mỗi kiểu có thể truyền 0 đến 1023 Byte dữ liệu đều có định dạng Sync PID Data CRS16 EOP - Gói bắt tay: có 3 kiểu • ACK: thông báo gói đã được nhận thành công. • NAK: boá thiết không thể trao đổi dữ liệu. • STALL: thiết bị yêu cầu sự can thiệp của thiết bị điều khiển USB. Sync PID EOP - Gói bắt đầu của khung: gồm 11 bit được thiết bị điều khiển USB gửi mỗi 1ms, có định dạng sau: Sync PID Frame Number CRS5 EOP 2.1.6. Các kiểu truyền USB. Thông tin có thể đi theo hai chiều hay một chiều. Máy chủ xử lý việc trao đổi dữ liệu với từng thiết bị ngoại vi một cách độc lập. Có 4 kiểu truyền: - Truyền đẳng thời: là phương pháp truyền 1 chiều. Giao thức bắt đầu khi có mã thông báo và một nhịp dữ liệu. Nếu thiết bị điều khiển USB đưa ra thông báo IN thì thiết bị USB đưa dữ liệu tới thiết bị điều khiển USB. Nếu thiết bị USB nhận dữ liệu từ thiết bị điều khiển USB ngay sau khi có mã thông báo OUT. Không có sự bắt tay trong cách truyền này, vì vậy thông tin có thể bị thất lạc. 44 - Truyền khối: Giống như truyền đẳng thời nhưng nó có sự bắt tay sau khi nhận dữ liệu, để khẳng định dữ liệu đã được thu, phát một cách chính xác. Tín hiệu ACK sẽ được phát bởi thiết bị USB hoặc thiết bị điều khiển USB nếu dữ liệu nhận không lỗi. Cho nên nó là phương pháp truyền hai chiều. Thiết bị USB có 2 tín hiệu báo lỗi: • NAK báo tạm thời không thực hiện yêu cầu của thiết bị điều khiển USB. • STALL báo có 1 điều kiện sai cần đến sự can thiệp của thiết bị điều khiển USB. - Truyền dẫn có điều khiển: là truyền một chiều. Giao thức truyền có 2 hoặc 3 trạng thái: cài đặt, trạng thái và dữ liệu (tuỳ chọn). Mọi thiết bị ngoại vi USB đều phải xử lý được loại truyền này. - Truyền có ngắt: tương tự như truyền khối nhưng nó chỉ có một mã thông báo IN. Thiết bị USB cho phép truyền lại dữ liệu, nếu không có ngắt dữ liệu mới thì sẽ thực hiện bắt tay bằng tín hiệu NAK. Nếu thiết bị USB cần đến sự can thiệp của thiết bị điều khiển thì nó sẽ lại bắt tay bằng tín hiệu STALL. 2.1.7. Điều khiển truyền dữ liệu. Máy chủ gửi thẻ khoá SETUP bảo cho hàm biết rằng gói tiếp theo sẽ nằm trong gói SETUP. Trường địa chỉ giữ địa chỉ của thiết bị mà máy chủ đang yêu cầu bộ mô tả từ đó. Số thứ tự của điểm kết thúc là Zero để xác định ống mặc định. Khi đó máy chủ sẽ gửi gói Data0. Nó có tác dụng lượng hữu ích 8 byte. Hàm USB xác nhận gói SETUP đã được đọc đúng. Nếu gói được nhận là sai thì thiết bị nhận sẽ bỏ qua gói này. Khi đó máy chủ sẽ gửi lại gói sau một khoảng thời gian trễ nhỏ. 1. Setup Token Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number 2.Data0 Packet Sync PID Data0 CRC16 EOP Device Device Discriptor 3 A k H d h k Sync PID EOP Device Ack Setup Packet 45 Ba gói trên mô tả tác vụ thứ nhất của USB. Thiết bị USB sẽ giải mã 8 byte nhận được và xác định xem đó có phải là yêu cầu cảu thiết bị hay không. Lúc đó thiết bị sẽ gửi bộ mô tả thiết bị đó và đó là tác vụ tiếp theo của USB. 1. In Token Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number 2.Data0 Packet Sync PID Data0 CRC16 EOP First 8 byte of Device Discriptor 3. Ack Handshake Sync PID EOP Host Acknowledges Packet 1 I T k Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number 2.Data1 Packet Sync PID Data1 CRC16 EOP Second 8 byte of Device Discriptor 3. Ack Handshake Sync PID EOP Host Acknowledges Packet 1. In Token Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number 2.Data0/1 Packet Sync PID Data0/1 CRC16 EOP Last 8 byte of Device Discriptor 3. Ack Handshake Sync PID EOP Host Acknowledges Packet Trong trường hợp này, giả sử dữ liệu hữu ích là 8 byte. Máy chủ gửi thẻ khoá IN để đảm bảo cho thiết bị nó có thể gửi dữ liệu cho điểm cuối này. Vì kích thước gói dữ liệu lớn nhất là 8 byte nên ta có thể phân chia bộ mô tả thiết bị 12 byte ra để gửi. Khi bộ mô tả thiết bị đã được gửi thì tiếp theo sẽ là tác vụ trạng thái. Nếu tất cả các tấc vụ đã thành công thì máy chủ sẽ gửi 1 gói có chiều dài bằng không để báo toàn bộ tác vụ đã thành công. 1. Out Token Sync PID ADRR ENDP CRC5 EOP Address & Endpoint Number 2.Data0 Packet Sync PID Data0 CRC16 EOP Zero Length Packet 3. Ack Handshake Sync PID EOP Host Acknowledges Packet 46 2.2. Hệ thống USB 2.0. USB 2.0 tương thích ngược với thiết bị USB 1.x và cả hai có một số đặc trưng giống nhau như: • Sử dụng cùng đầu nối. • Dùng cáp tốc độ đầy đủ cho thiết bị tốc độ cao. • Tận dụng cùng một mô hình truyền thông. • Sử dụng cùng sự dự đoán đi kèm thiết bị. • Sử dụng cùng kiểu cấu hình thiết bị. Hệ thống cơ sở USB 2.0 được thiết kế để hỗ trợ thiết bị tốc độ cao (high- speed), thiết bị tốc độ đầy đủ (full-speed) và thiết bị tốc độ thấp (low-speed). Phiên bản USB 2.0 có tốc độ truyền dữ liệu nhanh gấp 30 ÷ 40 lần so với phiên bản 1.1 ban đầu. Tốc độ truyền của nó có thể đạt tới 360 ÷ 480 Mbit/s, và bảo đảm được cho các hệ ngoại vi tốc độ lớn sau này. Hình 2.4: Cấu hình hệ thống USB 2.0 trong tương lai. 47 CHƯƠNG III. THIẾT KẾ GIAO DIỆN USB (PC) SỬ DỤNG CHIP FT245BM 3.1. Giới thiệu chung. IC FT245BM là cách thức truyền dữ liệu dễ dàng và hiệu quả với ngoại vi và chủ PC, nó đạt tới tốc độ 1MB/s. Với thiết kế FIFO tạo một cho nó có thể dễ dàng để tương thích với bất kỳ bộ vi điều khiển hay vi xử lý thông qua cổng IO. Để gửi dữ liệu từ thiết bị ngoại vi tới máy chủ, đơn giản ta chỉ cần ghi byte dữ liệu vào mođun khi mà TXE# ở mức thấp. Nếu bộ đệm phát (384) byte đầy hay bận lưu trữ byte đã ghi trước đây thì thiết bị sẽ đưa chân TXE# lên mức cao cho phép ngừng quá trình dữ liệu được ghi cho đến khi một số dữ liệu FIFO được truyền qua USB tới chủ. Khi chủ gửi dữ liệu tới thiết bị ngoại vi, thì thiết bị sẽ đưa chân RXF# ở mức thấp để cho biết thiết bị ngoại vi có ít nhất 1 byte sẵn sàng. Sau đó thiết bị ngoại vi đọc dữ liệu cho đến khi RXF# ở mức cao để chỉ rằng không có thêm dữ liệu được đọc vào. 3.2. Những ưu điểm nổi bật: 3.2.1. Tích hợp mạch Power-On-Reset(POR). IC FT245BM được tích hợp chức năng POR bên trong. Chân RESET hiện tại có chức năng cho phép bên ngoài reset lại IC nếu cần thiết, tuy nhiên với nhiều ứng dụng chân này có thể được bỏ qua N/C hoặc gắn cố định với Vcc. Thêm vào đó, một chân ra reset (RSTO#) có thể cho phép mạch POR mới cung cấp một chức năng reset ổn định tới MCU (MicroController) bên ngoài và cho các thiết bị khác. RSTO# là chân TEST ở các chíp thế hệ trước. 3.2.2. Tích hợp mạch RCCLK. 48 Ở các thế hệ trước, yêu cầu phải có một mạch RC bên ngoài để bảo đảm cho bộ tạo dao động và đồng hồ nhân tần số PLL ổn định trước khi cho phép tác động của đồng hồ bên trong tới IC. Mạch này bây giờ đã được đưa vào trong chip – chân thực hiện chức năng này được thiết kế như chân TEST và được nối đất khi hoạt động bình thường. 3.2.3. Tích hợp bộ chuyển đổi mức trong mạch tương thích FIFO và tín hiệu điều khiển. Trước đây có thể điều khiển FIFO và tín hiệu điều khiển ở mức lôgic 5V CMOS. Thế hệ này có một chân VccIO riêng biệt cho phép IC có thể tương thích trực tiếp với 3.3V và các họ lôgíc khác mà không cần đến bộ chuyển đổi bên ngoài. 3.2.4. Bộ điều khiển nguồn cho Bus USB, dòng điện của thiết bị cao. Một tín hiệu PWREN# mới có thể dùng để điều khiển trực tiếp một transistor hoặc MOSFET kênh P để ứng dụng cho yêu cầu chuyển mạch nguồn của mạch lôgic bên ngoài. Một EEPROM mới dựa vào tuỳ chọn làm cho IC được nối qua dây của mạch FIFO tương thích khi tắt nguồn (PWREN# ở mức cao). Trong chế độ này, điện áp còn dư ở mạch ngoài chạy xuống GND khi mà nguồn khác biệt vì vậy phải bảo đảm rằng mạch ngoài điều khiển bằng chân PWREN# reset chính xác khi mà nguồn được hồi phục lại. 3.2.5. Tín hiệu Send Immediate/WakeUp (SI/WU). Tín hiệu mới Send Immediate/WakeUp kết hợp 2 chức năng trên 1 chân. Nếu USB ở chế độ ngắt (và chế độ đánh thức được cho phép trong EEPROM), chốt chân này ở mức thấp sẽ làm IC yêu cầu hồi phục lại từ chế độ ngắt (WakeUp) trên Bus USB. Thông thường, nó có thể được dùng để “đánh thức” PC chủ. Khi hoạt động bình thường, nếu chân này được chốt ở mức thấp thì bất kỳ dữ liệu nào ở buffer RX của IC sẽ được gửi qua USB tại yêu cầu Bulk-IN tiếp theo từ Driver mà không quan tâm đến kích thước của gói tin. Nó có thể được sử dụng để đánh giá tốc độ truyền của USB trong một vài ứng dụng. 49 3.2.6. Dòng điện ngắt thấp hơn. Việc tích hợp RCCLK và việc cải tiến thiết kế bên trong IC là giảm dòng điện khi ngắt của FT245BM, thông thường dưới 100µA (trừ khi điện trở 1.5k cấp nguồn nối với chân USB DP) ở chế độ ngắt USB. Nó cho phép lượng dư lớn hơn để ngoại vi có thể nối với USB ở giới hạn dòng điện ngắt 500µA 3.2.7. Hỗ trợ truyền đẳng thời USB. Khi mà truyền khối USB luôn là lựa chọn tốt nhất cho truyền dữ liệu thì thời gian sắp xếp dữ liệu không bảo đảm. Với các ứng dụng để sắp xếp thì góc trễ (của ổ đĩa) sẽ ưu tiên cho dữ liệu toàn vẹn như là truyền audio và dữ liệu video dải thông hẹp, với IC thế hệ mới cung cấp một lựa chọn của truyền dữ liệu đẳng thời USB qua bit lựa chọn trong EEPROM. 3.2.8. Có thể chương trình hóa thời gian chờ của bộ đệm FIFO TX. Trong các IC trước, bộ đệm TX thường đưa các dữ liệu còn trong bộ đệm TX ở thời gian chờ khoảng 16ms. Thời gian chờ bây giờ đã được chương trình hóa qua USB trong 1ms gia tăng trị số từ 1ms tới 255ms, vì vậy cho phép IC trở nên tối ưu hơn cho các giao thức đòi hỏi thời gian đáp ứng nhanh hơn từ các gói dữ liệu ngắn. 3.2.9. Giảm các cấu trúc hỗ trợ bên ngoài. Cũng như đã loại bỏ hệ thống RCCLK và với hầu hết các ứng dụng cần thiết cho mạch reset bên ngoài, nhà sản xuất cũng loại bỏ điện trở 100k nối tới nguồn ở EECS để chọn hoạt động 6Mhz. Khi FT245BM được sử dụng không có kết cấu EEPROM thì EECS, EESK và EEDATA có thể loại bỏ. Với mạch yêu cầu thời gian reset dài (Khi mà thiết bị được reset từ bên ngoài sử dụng IC tạo tín hiệu reset, hoặc reset được điều khiển bởi cổng IO của MCU…) thì một mạch transistor cũng không cần thiết nữa giống như một điện trở 1.5k ở chân USB DP có thể nối với chân RESETO# thay cho 3.3V. 50 Chú ý: RESETO# ra ở mức 3.3V, không phải ở mức 5 V. Kết cấu này thích hợp cho thiết kế mới. Trong một vài cấu trúc, RSTO# có thể được sử dụng để reset mạch bên ngoài hay MCU. 3.2.10. Hỗ trợ EEPROM bên ngoài. Ở các thế hệ trước chỉ hỗ trợ loại EEPROM 93C46 (128x16 bit). Thế hệ này có thể làm việc được với cả EEPROM loại 93C56 (256x16 bit) và 93C66 (512x16 bit). Không gian mở rộng không sử dụng bởi IC này mà nó để sử dụng cho các MCU, các hệ bên ngoài khi mà FT245BM bị giữ ở chế độ Reset. 3.2.11. USB 2.0 (tuỳ chọn tốc độ). Một khối EEPROM lựa chọn sẽ cho phép FT245BM trở lại thiết bị USB 2.0 khi xung đột với USB 1.1. Chú ý: IC nên ở chế độ Full Speed USB 2.0 (12Mb/s) khi xung đột với chế độ High Speed USB 2.0 (480Mb/s). 3.2.12. Hỗ trợ nhiều thiết bị mà không có EEPROM. Khi không có EEPROM (hay EEPROM trắng hoặc lỗi) được gắn vào IC thì FT245BM không cần phải thông báo số Seri (như một phần trong nhận dạng) nữa. Nó cho phép nhiều thiết bị được nối đồng thời tới cùng một PC. Tuy nhiên các nhà sản xuất vẫn khuyến cáo rằng nên sử dụng EEPROM, khi không có số Seri thì thiết bị chỉ được nhận dạng bởi cổng Hub trong cây USB được kết nối tới, nó có thể thay đổi nếu người sử dụng sau cắm lại thiết bị vào cổng khác. 3.2.13. EEREQ#/EEGNT#. Các chân này ở FT245AM không có trong FT245BM. Chúng được thay thế bởi tín hiệu mới SI/WU và PWREN#. 51 3.3 Sơ đồ khối. Chip FT245BM bao gồm các khối chức năng chính sau : Chức năng cụ thể của các khối: • 3.3V LDO Regulator: Khối 3.3V LDO Regulator cấp điện áp 3.3V để điều khiển bộ đệm ra của khối thu phát USB. Nó yêu cấu phải có một tụ điện ở ngoài được gắn với chân ra 3.3V OUT của bộ điều chỉnh. Nó cũng có tác dụng cấp nguồn 3.3 V cho chân RSTOUT#. Nhiệm vụ chính của khối này là cấp nguồn cho bộ thu phát USB (USB Transceiver) và khối Reset Generator, ngoài ra nó còn có thể cấp nguồn cho một số mạch ngoài. Tuy nhiên có một số mạch ngoài yêu cầu 3.3V với dòng điện không vượt quá 5mA tại chân 3.3V OUT. • Bộ thu phát USB (USB Transceiver): Khối USB Transceiver cho phép USB 1.1/USB 2.0 tương thích về mặt tốc độ vật lý cao nhất đối với cáp USB. 52 Bộ điều khiển ra cấp mức 3.3V cho điều khiển tín hiệu tốc độ chậm, khi mà một bộ thu vi sai và 2 đường dây đơn bộ thu cung cấp dữ liệu USB vào, SEO và điều kiện Reset USB được nhận biết. • USB DPLL: Khối này khoá đối với dữ liệu USB NRZI tới, cấp mạch đồng hồ xung nhịp riêng và tín hiệu dữ liệu tới khối SIE. • Bộ tạo dao động 6Mhz: Khối tạo dao động 6Mhz cấp xung đồng bộ 6Mhz tới đầu vào của bộ X8 Clock Multiplier. • X8 Clock Multiplier: Lấy xung nhịp 6Mhz từ khối tạo dao động 6Mhz và cấp dao động 12Mhz cho SIE, USB Protocol Engine và khối điều khiển FIFO. Nó cũng cung cấp cho khối USB DPLL dao động 48Mhz. • Serial Interface Engine (SIE): biến đổi dữ liệu USB từ nối tiếp thành song song và ngược lại. Tương ứng với cấu trúc kĩ thuật của USB 1.1, nó cho phép nén hoặc không nén bit và phát CRC5/CRC16 (mã kiểm tra quay vòng dư) để kiểm tra luồng dữ liệu USB. • USB Protocol Engine: quản lý luồng dữ liệu từ thiết bị USB nhờ điều khiển điểm cuối. Nó sử dụng giao thức USB ở mức thấp, yêu cầu được phát ra bởi mạch điều khiển USB chủ và nhờ các lệnh để điều khiển các tham số chức năng FIFO. • Bộ đệm thu FIFO (128 byte): dữ liệu gửi từ chủ USB tới FIFO qua điểm cuối của dữ liệu ra USB, nó được lưu vào trong bộ đệm thu FIFO và được đưa ra khỏi bộ đệm bằng cách đọc nội dung FIFO sử dụng chân RD#. • Bộ đệm phát FIFO(384 byte) : Dữ liệu ghi vào FIFO sử dụng chân WR# được lưu vào trong bộ đệm phát FIFO . Thiết bị chủ USB chuyển dữ liệu khỏi dữ liệu phát FIFO bằng cách gửi một yêu cầu USB về dữ liệu từ khối dữ liệu thiết bị ở điểm cuối. 53 • Bộ điều khiển FIFO: bộ điều khiển FIFO điều khiển quá trình truyền dữ liệu giữa các chân giao diện FIFO mở rộng và bộ đệm thu phát FIFO. • Reset Generator: khối này cung cấp một khả năng reset ổn định tới mạch trong của thiết bị khi đang hoạt động. Với chân RESET đưa vào và chân ra RSTOUT# cho phép nhiều thiết bị có thể Reset FT245BM hoặc FT245BM reset các thiết bị khác theo thứ tự định sẵn. Khi Reset, RSTOUT# ở trở kháng cao nếu không thì nó điều khiển ra tại 3.3V được cấp bởi bộ điều chỉnh trên bảng mạch. RSTOUT# có thể được sử dụng để Reset các thiết bị khác. RSTOUT# sẽ ở trạng thái trở kháng cao trong khoảng 5ms khi Vcc vượt quá 3.5V và thiết bị tạo dao động đang hoạt động và chân RESET# đang ở mức cao. Chân RESET# có thể được đặt lên ở mức cao trừ khi nó là một yêu cầu để Reset lại thiết bị từ bên ngoài hay từ một nguồn reset ở bên ngoài. • Giao diện EEPROM: Cho dù FT245BM không bắt buộc phải làm việc với EEPROM, nhưng một EEPROM bên ngoài 93C46(93C56, 93C66) có thể được sử dụng để điều chỉnh USB VID, PID, số Seri … của FT245BM. EEPROM cũng cần thiết cho những ứng dụng mà có nhiều FT245BM kết nối với 1 PC đơn nhờ các bộ điều khiển dựa vào một số Seri duy nhất cho mỗi thiết bị để gắn với một cổng COM ảo cho mỗi thiết bị riêng. Các tham số được điều khiển nhờ EEPROM bao gồm “Đánh thức từ xa” (Remote Wake Up), chế độ truyền đẳng thời (Isochronous Transfer mode), Soft Pull Down on Power-Off và chế độ nhận diện USB2.0. EEPROM có thể có cấu hình 16bit giống như MicroChip 93LC46B hay tương đương với tốc độ đồng hồ 1Mb/s tại điện áp Vcc = 4,4V tới 5,25V. Nếu không có EEPROM được gắn vào (hoặc EEPROM trắng) thì FT245BM sẽ sử dụng VID, PID,… ngầm định. Trong trường hợp thiết bị sẽ không có số seri giống như phần nhận diện USB. 54 3.4 Sơ đồ chân tín hiệu. Chức năng cụ thể của các chân tín hiệu FT245BM: • Nhóm chân dữ liệu: Chân Tín hiệu Vào – Ra Chức năng 25 D0 I/O Bit dữ liệu FIFO 0 24 D1 I/O Bit dữ liệu FIFO 1 23 D2 I/O Bit dữ liệu FIFO 2 22 D3 I/O Bit dữ liệu FIFO 3 21 D4 I/O Bit dữ liệu FIFO 4 20 D5 I/O Bit dữ liệu FIFO 5 19 D6 I/O Bit dữ liệu FIFO 6 18 D7 I/O Bit dữ liệu FIFO 7 55 • Nhóm chân điều khiển giao diện FIFO: Chân Tín hiệu Vào – Ra Chức năng 16 RD# IN Ở mức thấp cho phép byte dữ liệu FIFO xuất ra tại D0..D7. Đưa byte dữ liệu FIFO tiếp theo (nếu có) từ bộ đệm thu FIFO ra khi chân RD# từ mức thấp lên mức cao. (Chú ý 1) 15 WR IN Ghi byte dữ liệu vào bộ đệm phát khi chân WR từ mức cao xuống mức thấp. (Chú ý 1) 14 TXE# OUT Ở mức cao, không cho phép ghi dữ liệu vào FIFO. Khi ở mức thấp thì dữ liệu có thể được ghi vào FIFO bằng cách chốt chân WR từ cao xuống thấp. (Chú ý 2) 12 RXF# OUT Khi ở mức cao, không cho phép đọc dữ liệu từ FIFO. Khi ở mức thấp, dữ liệu nếu có ở FIFO có thể đọc ra bằng cách chốt chân RD# từ thấp lên cao lần nữa. (Chú ý 2) • Nhóm chân giao diện USB: Chân Tín hiệu Vào – Ra Chức năng 7 USBDP I/O Chân tín hiệu D+ của USB (yêu cầu có trở 1.5k ở chân 3.3V OUT hoặc RSTOUT#). 8 USBDM I/O Chân tín hiệu D- của USB. • Nhóm chân giao diện của EEPROM: Chân Tín hiệu Vào – Ra Chức năng 32 EECS I/O Chọn chíp EEPROM. ở 48Mhz quá trình làm việc nối EECS xuống GND bằng một điện trở 10K. Ở 6Mhz thì không cần điện trở. Chân này 56 là dạng 3 trạng thái, nhưng ở mức cao sử dụng 1 điện trở trong 200K khi thiết bị reset. 1 EESK OUT Đồng hồ tín hiệu cho EEPROM. Là cổng 3 trạng thái khi thiết bị reset hoặc điều khiển ra. 2 EEDATA I/O Dữ liệu vào-ra của EEPROM. Được nối trực tiếp với Data-In của EEPROM và nối với Data- Out của EEPROM thông qua điện trở 2.2k. Data-Out của EEPROM cũng được nối tới Vcc thông qua điện trở 10K. Nó trở thành 3 trạng thái khi thiết bị reset. • Nhóm chân cấp nguồn: Chân Tín hiệu Vào – Ra Chức năng 10 PWREN # OUT Xuống mức thấp sau khi thiết bị được định cấu hình qua USB, sau đó lên mức cao khi USB ngắt. Nó có thể được sử dụng để điều khiển nguồn cho thiết bị bên ngoài nhờ sử dụng khoá chuyển đổi mức Lôgic kênh P của MOSFET. 11 SI/WU IN Tín hiệu Send Immediate/WakeUp phối hợp 2 chức năng trong cùng một chân. Nếu USB ở chế độ ngắt (PWREN# = 1) và chế độ “đánh thức từ xa” được tạo lập trong EEPROM, thì ở mức thấp chân này sẽ tác động vào thiết bị để yêu cầu khôi phục hoạt động trên USB bus. Thông thường nó có thể được sử dụng để kích hoạt chủ PC. Khi hoạt động bình thường (PWREN# = 0) nếu chân này chốt ở mức thấp thì bất cứ dữ liệu nào trong bộ đệm RX của thiết bị sẽ được gửi ra qua USB trong yêu cầu Bulk-IN tiếp theo từ bộ điều khiển mà không chú ý tới kích thước gói dữ liệu sắp tới. 57 Nó có thể được sử dụng để tối ưu tốc độ truyền dữ liệu USB trong một vài ứng dụng. Đặt chân này lên mức cao nếu không sử dụng. • Nhóm tín hiệu hỗn hợp: Chân Tín hiệu Vào – Ra Chức năng 4 RESET# IN Có thể được sử dụng bởi một thiết bị bên ngoài để reset FT245BM. Nếu không cần thiết hãy nối nó với Vcc. 5 RSTOUT# OUT Từ đầu ra của bộ Reset Generator. ở mức trở kháng cao trong khoảng 2ms sau khi Vcc>3,5V và đồng hồ bên trong khởi động, sau đó giữ đầu ra của nó như đầu ra 3.3V của bộ điều chỉnh (3.3V LDO..). Đưa RESET xuống thấp sẽ làm cho RSTOUT# ở trở kháng cao. RSTOUT# không có hiệu lực khi Reset USB Bus. 27 XTIN IN Là đầu vào của bộ tạo dao động 6Mhz. Chân này có thể được điều chỉnh bởi một đồng hồ 6Mhz bên ngoài nếu cần thiết. Chú ý là giới hạn chân này là Vcc/2, do vậy nếu điều chỉnh bằng một nguồn bên ngoài thì nguồn phải được điều khiển ở mức 5V CMOS hoặc nguồn xoay chiều với trung bình là Vcc/2. 28 XTOUT OUT Là đầu ra của bộ dao động tinh thể 6Mhz. XTOUT ngừng dao động khi USB ngắt, do vậy cần phải thận trọng nếu sử dụng tín hiệu này để định thời cho thiết bị ngoài. 31 TEST IN Đặt các bộ phận trong IC ở chế độ test – Khi hoạt động bình thường thì phải nối với GND. 58 • Nhóm chân tín hiệu nguồn và đất: Chân Tín hiệu Vào – Ra Chức năng 6 3V3 OUT OUT Đầu ra 3.3 V từ bộ điều chỉnh LDO tích hợp. Chân này nên được ngăn với GND bằng một tụ điện gốm 33nF. Mục đích quan trọng nhất của nó là cấp nguồn bên trong 3.3V cho bộ thu phát USB và chân RSTOUT. Nó có thể cấp nguồn cho thiết bị ngoài với dòng điện nhỏ hơn 5mA nếu cần thiết. 3,26 VCC PWR Cấp nguồn 4.4V tới 5.25V Vcc cho thiết bị lõi, giao diện LDO và các chân không thuộc giao diện FIFO. 13 VCCIO PWR Cấp nguồn 3V tới 5.25V Vcc cho các chân giao diện FIFO 10..12, 14..16 và 18..25. Khi ghép với thiết bị ngoài 3.3V thì nối VCCIO với nguồn 3.3V của thiết bị ngoài, còn không thì kết nối với Vcc để điều khiển ra tại mức điện áp CMOS 5V. 9,17 GND PWR Chân đất. 30 AVCC PWR Nguồn tín hiệu Analog cho bộ nhân tần x8. 29 AGND PWR Chân đất Analog cho bộ nhân tần x8. Chú ý 1: Ở chế độ vào, các chân này được nối tới VCCIO thông qua điện trở trong 200k. Chúng có thể được chương trình hoá để hạ xuống thấp một cách dễ dàng hơn khi USB bị ngắt (PWREN# = 1) bằng cách đặt chế độ cho EEPROM. Chú ý 2: Khi thiết bị reset, các chân này là 3 trạng thái nhưng nối lên VCC thông qua điện trở 200K. 59 3.5. Giản đồ thời gian – Chu kỳ đọc FIFO. Giản đồ thời gian chu kỳ đọc FIFO của chip FT245BM được biểu diễn ở hình dưới đây: Hình 3.1: Giản đồ thời gian – chu kỳ đọc FIFO. Trong đó các Th Min Max Đơn vị thời gian T thể hiện các trạng thái : ời gian Trạng thái T1 RD ở mức tích cực 50 ns T2 RD ở mức không tích cực 50 ns T3 RD ở mức tích cực, chuẩn bị có dữ liệu 3 truyền trên Bus 0 ns Dữ liệu còn khi cực. T5 RD ở mức không tích cực tới RXF# 25 5 ns RXF ở mức không tích cực khi kết thúc chu kì đọc T4 RD đã ở mức không tích 10 ns T6 80 ns 3.6. Giản đồ thời gian – Chu kỳ ghi FIFO. FT245BM được biểu diễn ở hình dưới đây: Giản đồ thời gian chu kỳ đọc FIFO của chip 60 Hình 3.2: Giản đồ thời gian – chu kỳ ghi FIFO. Trong đó các thời gian T thể hiện các trạng thái : Thời gian Trạng thái Min Max Đơn vị T7 WR ở mức tích cực 50 Ns T8 WR ở mức không tích cực 50 Ns T9 Thời gian có dữ liệu trước khi WR ở mức 2 không tích cực 0 Ns T10 Dữ liệu vẫn còn khi WR đã ở mức không tích cực 10 Ns Thời gian từ WR không tích cực tới TXE# T12 TXE ở mức không tích cực sau chu kì ghi 80 Ns T11 5 25 Ns 61 62 Hình 3.9: Sơ đồ mạch kết nối với MCU. 3.7. Các mạch sử dụng chip FT245BM. 3.7.1. Mạch tạo dao động. Sử dụng bộ tạo dao động nội 6 MHz của chip FT245BM ta mắc mạch dao động ngoài để tạo các dao động mà ta cần. Hình 3.3: Sơ đồ mạch tạo dao động Trên hình vẽ chỉ ra cách nối FT245BM với các bộ cộng hưởng để tạo dao động. Gồm cách nối với bộ tạo dao động 3 chân và 2 chân. 3.7.2. CÊu h×nh với EEPROM. Ta có thể ghép nối chip FT245BM với EEPROM như sau : Hình trên minh hoạ cách kết nối FT245BM tới EEPROM 93C46 (93C56 hoặc 93C66). Chân select (CS) của EEP điều kiện cùng thoả mãn thì FT245BM sẽ sử dụng dữ liệu tron ộng bus 16 bit ví dụ như hế độ 8/16 bit hoặc để kiểm tra. Do vậy y chỉ được thực hiện khi EECS (32) được nối trực tiếp tới chân chip ROM. Chân EEDATA (2) được nối trực tiếp tới chân Data In (Din) của EEPROM. Nhờ có cùng điều kiện điện thế nên cả chân Data Output (Dout) của EEPROM có thể được điều khiển đồng thời bởi chân EEDATA của FT245BM. Để tránh điện thế dữ liệu xung đột trong trường hợp này, chân Dout của EEPROM được nối tới EEDATA của FT245BM thông qua điện trở 2.2k. Sau khi nguồn được reset hoặc USB reset thì FT245BM sẽ kiểm tra EEPROM để xét: a) Nếu EEPROM được nối với thiết bị và b) nếu dữ liệu trong thiết bị là hợp lệ. Khi cả hai g EEPROM, nếu không thì nó sẽ sử dụng trị số ngầm định có sẵn. Nếu một lệnh hợp lệ được phát tới EEPROM từ FT245BM thì EEPROM sẽ báo cho biết đã nhận được lệnh bằng cách đưa chân Dout của nó xuống mức thấp. Để kiểm tra điều kiện này, cần thiết phải đưa Dout lên mức cao bằng cách sử dụng điện trở 10K (nối với Vcc). Nếu không nhận được lệnh thì EEDATA sẽ ở mức cao do điện trở 10K nối với Vcc trong mỗi phần của chu kì và thiết bị sẽ nhận một lệnh không hợp lệ hoặc không có EEPROM. Có 2 loại EEPROM trên thị trường – một loại có dung lượng bus 16 bits và loại kia là 8 bits. FT245BM đòi hỏi EEPROM với độ r loại 93LC46B. EEPROM phải có khả năng đọc dữ liệu với tốc độ đồng hồ 1Mb với nguồn nuôi 4.4V tới 5.25V. Hãy xét chân 6 và 7 của EEPROM. Một số thì ghi rõ nó không để kết nối gì cả, còn một số lại sử dụng nó để chọn c cần phải xem xét cẩn thận các chế độ của nó. Ta hoàn toàn có thể “chia sẻ” EEPROM giữa FT245BM với các thiết bị ngoại vi khác như là MCU. Tuy nhiên điều nà 63 Hình 3.5: Sơ đồ mạch cấp nguồn. ạch mô tả một cách cấp nguồn thông dụng cho bus USB. Các nguyên FT2 tắc cơ bản của cấp nguồ ng không vượt quá 500µA. 45BM ở chế độ Reset, tương ứng với EEPROM ở chế độ 3 trạng thái tại thời điểm đó. Với một kết cấu thông thường có thể sử dụng 4 bit của một cổng I/O của MCU. Một bit có thể sử dụng để giữ cho FT245BM sử dụng chế độ Reset khi đang hoạt động, 3 bít còn lại có thể kết nối tới chân EECS, EESK và EEDATA của FT245BM để cho phép đọc/ghi dữ liệu vào EEPROM tại thời điểm đó. Khi mà MCU đọc/ghi dữ liệu vào EEPROM thì nó có thể đặt chân RESET# lên mức cao và cho phép FT245BM tự định dạng và đếm thông qua USB. 3.7.3. Cấp nguồn từ Bus USB. M n từ Bus USB là: a) Khi cắm vào thì thiết bị phải có dòng không vượt quá 100mA. b) Khi ngắt USB thì thiết bị phải có dò 64 c) Cấp nguồn qua Bus ở chế độ cao (vượt quá 100mA) nên sử dụ Hình 3.6: Sơ đồ mạch tự cấp nguồn. ạch trên cho ta một cách tự cấp nguồn thông dụng cho USB, nó l ng chân PW µA khi US ừ Bus USB. ối tiếp với nguồn USB để chống lại tạp âm từ thiết bị và rị của lõi Ferrit tuỳ thuộc vào dòng điện yêu cầu cho mạch. ấy nguồn từ bản thân ng iện từ Bus USB. Các nguyên tắc cơ bản của tự cấp nguồn USB là: REN# để giữ cho dòng điện dưới 100mA khi cắm thiết bị và 500 B ngắt. d) Thiết bị có dòng điện vượt quá 100mA không được phép cắm vào Hub của nguồn t e) Không được phép có dòng 500mA trên Bus USB. Lõi Ferit được mắc n kết hợp với mạch toả nhiệt cho cáp USB nối tới Chủ. Giá t 3.7.4. Kết cấu tự cấp nguồn USB: M uồn nuôi của nó mà không bằng dòng đ 65 a) Một thiết bị tự cấp nguồn không được làm cho dòng điện chạy trên Bus USB khi mà Chủ USB hoặc Bộ điều khiển Hub tắt nguồn. b) Một thiết bị tự cấp nguồn có thể đạt dòng Hình 3.7: Sơ đồ mạch tự cấp nguồn thứ 2. điện lớn như nó đạt được tron t cứ Chủ USB nào và c DP phải được điều chỉnh để thể gây cho một số chủ USB hay bộ điều khi g khi hoạt động bình thường và khi USB ngắt c) Một thiết bị tự cấp nguồn có thể được sử dụng với bấ ả với USB và Hub tự cấp USB. Để đạt yêu cầu a) thì mạch điện trở 1.5k tại USB ngăn không cho dòng điện chạy trên dây USB DP qua điện trở 1.5k khi mà Chủ hoặc Hub tắt nguồn. Lỗi này có ển Hub bật lên một cách bất thường. Có thể dùng một transistor (2N3906) để tạo nguồn cho Bus USB. Nó được nối dạng emitơ lặp lại do đó khi có nguồn trên bus USB thì transistor sẽ bão hoà và điện trở 1.5k được nối trực tiếp với RSTOUT#. Khi nguồn USB tắt thì Transistor cũng tắt theo do đó chặn không cho dòng điện chạy vào dây USB DP. 66 H Hình 3.8: Sơ đồ mạch tạo ngu n mức lôgic 3.3v / nguồn nuôi. ình trên mô tả một cách mạch cấp nguồn tương tự. Lúc này điện trở 1.5k ở chân USB DP đươc nối với RSTOUT# như ở mạch cấp nguồn cho Bus. Tuy nhiên, cấp nguồn cho bus USB được sử dụng để điều khiển chân RESET# của FT2 Trong 2 kết cấu trên, việc sử dụng phụ thuộc vào thiết kế của thiết bị ngoại vi. Với kết cấu đầu tiên thì FT245BM là “Live” – khi cổng USB tắt thì sẽ không có hoạt động trên USB bus và thiết bị sẽ ở trạng thái nghỉ trong một vài 3.7.5. Mạch tạo nguồn cho Bus với mức lôgic 3.3v / nguồn nuôi. 45BM. Khi Chủ USB hay nguồn Hub tắt, RESET# sẽ ở mức thấp và thiết bị sẽ được giữ ở trạng thái Reset. Reset ở mức thấp làm cho RSTOUT cũng ở mức thấp, do vậy không có dòng điện chạy trên dây USB DP qua điện trở 1.5k. Chú ý: Khi FT245BM ở chế độ RESET thì các chân ghép nối FIFO đều là dạng 3 trạng thái. Các chân này có điện trở trong 200k nối tới Vcc-IO, do vậy nó sẽ ở mức cao trừ khi được điều khiển bởi một số thiết bị bên ngoài. ms. ở kết cấu này thì chân RESET# có thể vẫn hoạt động nếu cần thiết. Ở kết cấu thứ hai, FT245BM giữ ở trạng thái RESET khi mà USB tắt. Khi Reset, bộ tạo dao động 6Mhz của FT245BM vẫn hoạt động và thiết bị sẽ không ở trạng thái nguồn thấp. ồ 67 Hiện nay hầu hết các thiết bị USB đ ạt động với mức logic 3.3V. Do vậy mạc t bị mức lôgic 3.3V. Trong mạch này, một bộ phát 3.3V riêng biệt được sử dụng để tạo mức lôgíc 3.3V từ nguồn nuôi USB. VccIO được nối với đầu ra của bộ điều chỉnh 3.3V, khi hoạt động có thể làm cho các chân IO của giao diện FIFO điều chỉnh ra ở mức 3.3V. Với mạch cấp nguồn cho Bus USB, cần phải cân nhắc khi chọn bộ điều chỉnh. iều chỉnh LDO (Low Drop Out) giản V ị ngoài. Dòng điện ngắt không được quan tâm trong thiết kế tự cấp nguồn. h gắn liền của FT245BM để cấp nguồn 3.3 thấp nguồn trong chế độ ồm cả ngoại vi lôg không thể tự hạ thấp nguồn thì FT245BM cung cấp một cách đơn giản nhưng hiệu quả để tắt nguồn mạch ngoại vi khi USB ngắt. ều ho h trên cho biết cách kết cấu FT245BM để tương thích với thiế 1. Bộ điều chỉnh phải có khả năng duy trì điện áp đầu ra với điện áp đầu vào là 4.4V. Phải chọn bộ đ 2. Dòng điện tĩnh của bộ điều chỉnh phải thấp để khi USB ngắt, dòng điện tổng yêu cầu của USB ≤ 500µA. Khi sử dụng FT245BM với thiết kế tự cấp nguồn USB, thì chỉ nối đơn ccIO với nguồn 3.3V của thiết b Trong một số trường hợp, khi chỉ yêu cầu một dòng điện nhỏ (<5mA), nó có thể hoàn toàn sử dụng bộ điều chỉn V mà không yêu cầu bất kỳ một thành phần thêm nào. Trong trường hợp này, nối VccIO với chân 3.3V OUT của FT245BM. 3.7.6 Mạch cấp nguồn (≤100mA) với nguồn điều khiển: Mạch cấp nguồn cho Bus USB cần để có thể hạ ngắt USB nhằm đạt được dòng điện ngắt yêu cầu ≤500µA (g ic). Một số ngoại vi lôgíc có thể tự hạ thấp nguồn xuống trạng thái dòng điện thấp bằng cách điều chỉnh chân POWEREN#. Với các ngoại vi lôgic 68 Hình 3.9: Sơ đồ mạch cấp nguồn (≤100mA) với nguồn điều khiển. Hình trên cho thấy cách sử dụng một MOSFET kênh P để điều khi nguồn của mạch ngoại vi lôgic. Thiết bị hợp lý có thể là Fairchild NDT456P ển hay tươ à dòn t. 2. ối chuyển goại vi lôgic 3.3V hoặc nguồn VccIO từ chân 3.3V OUT của FT245BM nếu thích hợp. ng đương. Kết cấu này phù hợp để cấp nguồn cho ngoại vi lôgic m g điện của nguồn nuôi bình thường ≤100mA và được điều khiển không phát ra dòng điện đáng kể khi tăng nguồn. Để bật nguồn ngoại vi lôgíc mà vượt quá 100mA hay phát ra dòng đáng kể khi bật, thì nên thiết kế IC bật nguồn chuyên dụng với chế độ “Soft-Start” gắn liền thay cho sử dụng MOSFET (Chẳng hạn IC: MIC2025-2BM hoặc tương đương). Hãy chú ý đến những điểm sau khi kết nối với nguồn điều khiển: 1. Thiết bị lôgíc được điều khiển phải có mạch Reset cho nó mà nó sẽ tự động reset nó khi mà nguồn được ứng dụng lại không có ngắ Đặt lựa chọn nối đất cho EEPROM của FT245BM 3. Với mạch điều khiển nguồn 3.3V VccIO không được phép nối qua mạch ngoại vi (chân PWREN# lấy nguồn Vcc từ VccIO). Có thể n mạch nguồn với đầu ra của bộ điều chỉnh 3.3V và n 69 Hình 3.9: Sơ đồ mạ h kết nối với MCU. Hình trên mô tả một cách ghép nối thông dụng giữa FT245BM và m vi điều khiển (MCU). Ví dụ này sử dụng 2 cổng IO của MCU, 1 cổng 8 bit truyền dữ liệu và cổng còn lại (4/5 bit) định các bit trạng thái TXE# và 3.7.7. CÊu h×nh với bộ vi điều khiển (MCU): Chip FT245BM có thể ghép nối với MCU theo mạch sau : ột bộ để RFE# và phát lệnh cần thiết. Chân SI/W c để chốt chân RD# và WR tới FT245BM nếu U có thể nối với chân IO khác tuỳ ý nếu chức năng yêu cầu. Nếu chân SI/WU không cần thiết thì đặt nó lên mức cao. Nếu MCU đảm nhiệm chức năng quản lý nguồn thì PWREN# nên nối với chân IO của MCU. 8 bit dữ liệu của cổng 1 có thể được chia sẻ với thiết bị ngoại vi khác khi MCU không truy cập FT245BM. 70

Các file đính kèm theo tài liệu này:

  • pdfX-GDMT.pdf
Tài liệu liên quan