Hallo, ich habe eine Frage zum HCI (Host Controller Interface) beim Bluetooth Stack. "Communication between the controller and host is standardized as Hardware Controller Interface (HCI) over UART, USB or SDIO physical layer interface. It makes the controller and host vendor agnostic and allows you to mix and match controller and host implementations from different vendors." Bedeutet das, dass der Controller (bspw: ein Cortex M0?) mit dem Host über eine Schnittstelle verbunden ist. Das bedeutet, dass der Host, was, so wie ich das verstehe, die Luftschnittstelle abbildet. Das heißt da steck der Verstärker und sonstiges drin. Das heißt der Host ist in Hardware gegossen? Ist das dann auf einem CHip implementiert? Hat jemand vllt dazu mal ein Bild? Weiterhin heißt es wie folgt: "Alternatively, controller and host parts may be collocated and not need HCI implementation in that case. In this approach, a complete Bluetooth SoC often runs customer applications as well, and the chip provides required peripherals." Das wäre dann in einen Chip gegossen, oder? Wäre das dann ein komplettes Bluetooth-Modul wie dieses hier (https://www.insightsip.com/products/bluetooth-smart-modules/isp1302)? Dort ist ein nrf51822 verbaut. Antenne und alles ist im Modul enthalten. Wird da ein HCI benötigt? Ich versteh es nicht :)
Polizeirat Becker schrieb: > Dort ist ein nrf51822 verbaut. Antenne und alles ist im Modul enthalten. > Wird da ein HCI benötigt? Nö. Das ist ein Cortex-M0 mit direktem Anschluss an ein Bluetooth Lown Energy Radio auf einem Chip. Auf dem µC läuft ein propritärer Software Stack von NordicSemi, der dem Programmierer das Bluetooth Handling zu großen Teilen abnimmt. HCI haben beispielsweise die Bluetooth-2-USB Adapter, die so mit einem generischen Treiber laufen können.
Jim M. schrieb: > Nö. Das ist ein Cortex-M0 mit direktem Anschluss an ein Bluetooth Lown > Energy Radio auf einem Chip. Auf dem µC läuft ein propritärer Software > Stack von NordicSemi, der dem Programmierer das Bluetooth Handling zu > großen Teilen abnimmt. Und wann wird ein HCI benötigt?
Polizeirat Becker schrieb: > Und wann wird ein HCI benötigt? HCI ist der Versuch, bei einer Trennung zwischen Radio-Hardware und Host, einen gewissen Standard vorzugeben. Im embedded Bereich wird das aber immer weniger verwendet. Verwendung findet das in der Regel bei BLE USB Sticks. Die sprechen dann tatsächlich HCI über USB mit dem angeschlossenem PC.
Torsten R. schrieb: > HCI ist der Versuch, bei einer Trennung zwischen Radio-Hardware und > Host, einen gewissen Standard vorzugeben. Im embedded Bereich wird das > aber immer weniger verwendet. > > Verwendung findet das in der Regel bei BLE USB Sticks. Die sprechen dann > tatsächlich HCI über USB mit dem angeschlossenem PC. Ich glaube ich verstehe. Da ist der PC der Controller und die Hardware auf dem USB-Stick ist dann der Controller für das Radio-Interface? https://s.zeptobars.com/nRF51822-HD.jpg Das ist ein Foto vom Die des nrf51822. Da das Radio-Interface direkt im Chip integriert ist, benötige ich also kein HCI, weil ich quasi chipintern kommuniziere. Richtig?
Polizeirat Becker schrieb: > Das ist ein Foto vom Die des nrf51822. Da das Radio-Interface direkt im > Chip integriert ist, benötige ich also kein HCI, weil ich quasi > chipintern kommuniziere. Richtig? Jep! Im Fall des nrf51/52 bekommst Du eine API, gegen die Du entwickelst.
Polizeirat Becker schrieb: > Und wann wird ein HCI benötigt? Für die Nordic Cortex-Mx Chips gibt es auch HCI-ähnliche Firmware - und ein PC Programm (in Python geschrieben) das via UART/Serieller Schnittstelle mit jenem µC kommuniziert. Damit kann man dann einen BT LE Sniffer bauen oder OTA Firmware Updates fahren. Braucht man z.B. zwingend unter Windows 7, da das selber kein BT Low Energy unterstützt.
Torsten R. schrieb: >> Das ist ein Foto vom Die des nrf51822. Da das Radio-Interface direkt im >> Chip integriert ist, benötige ich also kein HCI, weil ich quasi >> chipintern kommuniziere. Richtig? > > Jep! Im Fall des nrf51/52 bekommst Du eine API, gegen die Du > entwickelst. Also die werden intern wohl auch irgendwie zwischen den Funkinterface und dem eigentlichen µC kommunizieren, aber das passiert ja dann über den AHB oder ähnliches. Also gibt es dort im Prinzip auch einen kleinen HCI, aber anscheind nicht so im klassischen Sinne?
Polizeirat Becker schrieb: > Also die werden intern wohl auch irgendwie zwischen den Funkinterface > und dem eigentlichen µC kommunizieren, aber das passiert ja dann über > den AHB oder ähnliches. Also gibt es dort im Prinzip auch einen kleinen > HCI, aber anscheind nicht so im klassischen Sinne? Die haben ein Softdevice (das ist ein image / Programmcode an fester Adresse) über das die mitgelieferten Bilbliotheken über Software-Interrupts kommunizieren. Das Softdevice selbst kommuniziert dann mit der Radio-Hardware über Register und Interrupts, wie mit jedem anderen Peripheral. Ja, und die Kommunikation über Register läuft dann über irgend ein ARM-Bus-System. Im Quellcode kannst Du Dir das z.B. bei https://github.com/zephyrproject-rtos/zephyr (C) oder https://github.com/TorstenRobitzki/bluetoe (C++) angucken. Mit HCI würde ich das nicht vergleichen wollen. Bei HCI habe ich eher das Gefühl, da hat einer ein System an der dicksten Stelle getrennt um da eine Schnittstelle einzuziehen. :-) mfg Torsten
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.